Archifau Misol: Ionawr 2015

HTTP 406 Gwall Pryd Yn Arfer onglog $ http.get Yn erbyn Pwyntiau SharePoint REST End

Diweddariad: Nododd hwn darn mawr o wybodaeth am marc AD ndersson: http://blogs.office.com/2014/08/13/json-Light-support-Rest-SharePoint-API-released/. Mae hynny'n egluro llawer :).

Efallai fod y teitl swydd blog gwaethaf erioed! Anyhoo.

Fel arfer y gwnaf bopeth o fy prototeipio erbyn enghraifft O365. Mae gennyf fy achos personol fel bod ddim yn gorfod poeni am unrhyw un arall sy'n effeithio ar. Wrth fynd heibio – cofio pan alwn Cynhaliwyd o amgylch rhith peiriannau ar ein gliniaduron gyda MWSOGL – gweinydd SQL, IIS, benderfynu vs Hyper-V. VMWare? Anyhoo...

Wedi datblygu ap ddefnyddio Angular yn yr amgylchedd hwn yw, ymhlith pethau eraill, hwn:

$http.get(serverUrl)
.llwyddiant(swyddogaeth(data, statws, Penynnau, Ffurfweddu) {

var getLinksResponse = data;

getLinksResponse.value.forEach(swyddogaeth(theResult) {

// ac ati a bytheirio felly

Roedd hyn yn gweithio ychydig iawn mewn dau wahanol SharePoint amgylcheddau ar-lein. Fodd bynnag,, pan oedd fy nghyd-Aelod yn ei ported i Cloudshare yr achos, ei fod yn cael HTTP 406 gwall (a oedd y tro cyntaf a gefais erioed mai un, felly... yay, am wn i). Oedd ychydig o ymchwil ac yn sylwi bod y pennawd "Derbyn" oddi ar. SharePoint ar-lein yn berffaith hapus gyda'r:

Derbyn: cais/json

Ond y lle cloudshare (sydd yn cefnogi pobl ar prem, gynhaliwyd yn weinydd rhithwir) am y clasurol "odata = amleiriog" ychwanegodd yn ogystal:

Derbyn: cais/json;odata = amleiriog

I ddatrys hynny, Ychwanegwyd y pennawd fel y cyfryw:

Ffurfweddu var = {Penynnau: {
'Derbyn': ' cais/json;odata = amleiriog '
}
};

$http.get(serverUrl,Ffurfweddu)
.llwyddiant(swyddogaeth(data, statws, Penynnau, Ffurfweddu) {

var getLinksResponse = data;

getLinksResponse.value.forEach(swyddogaeth(theResult) {

// ac ati a bytheirio felly

Bod cael gwared ar y 406, ond roedd hefyd wedi newid y fformat yr ymateb. Yr oedd mwy... amleiriog. (haha!) Yr oedd angen mwy o newidiadau ac yma yn y canlyniad terfynol:

Ffurfweddu var = {Penynnau: {
'Derbyn': ' cais/json;odata = amleiriog '
}
};

$http.get(serverUrl,Ffurfweddu)
.llwyddiant(swyddogaeth(data, statws, Penynnau, Ffurfweddu) {

var getLinksResponse = data;

getLinksResponse.d.results.forEach(swyddogaeth(theResult) {

// ac ati a bytheirio felly

Trodd hyn dim ond i 30 broblem funud i ni, Felly yr ydym yn lucked. Gobeithio rhywun canfod hyn yn ddefnyddiol.

</diwedd>

Sut-i: Galluogi Lluosog Rhannau onglog SharePoint We ar yr un dudalen

Blog hwn swyddi yn disgrifio sut y gallwch gael lluosog oedd Angular.js yn seiliedig ar SharePoint we rhannau (Cyfeirir at drwy'r we Golygydd cynnwys rhan) ar yr un dudalen. Yr wyf yn galw we Golygydd cynnwys rhan (CEWP) bod cyfeiriadau JavaScript a adeiladwyd gan ddefnyddio fframwaith Angular.js onglog we rhan."

Onglog y broses bootstrap yn hynod hawdd ac mae bron bob enghraifft a welwch chi ar y internets yn mynd rhywbeth fel hyn:

<html ng-ap = 'myApp'>

<bla /><bla /><bla />

</html>

Mae hyn yn torri i lawr, Fodd bynnag,, Os ydych am i alluogi CEWP lluosog sy'n cynrychioli rhannau we onglog lluosog ar yr un dudalen. Bydd onglog unig awtomatig bootstrap erbyn y Gyfarwyddeb ng-app cyntaf mae'n canfod – leiaf o fersiwn onglog 1.3.6. Mae'r ateb yn eithaf syml – eich hun bootstrap eich cod, yn hytrach. Mae uchod bellach newid i rywbeth fel hyn:

<corff>
<d
iv id =”bootstrapHere” rheolydd ng =”myController fel theController”>
<bla /><bla /><bla />
</div>
</corff>

<SGRIPT src =”//AJAX.googleapis.com/AJAX/libs/angularjs/1.3.6/angular.JS”></sgript>

<sgript>
angular.bootstrap(angular.element(document.getElementById(“bootstrapHere”)),['myApp']);
</sgript>

Yn y bôn, yn hytrach na defnyddio ap ng ar yr elfen i wneud eich Ymddangosai'r, Mae eich slapio ID ar elfen honno. Yna, defnyddio y bootstrap() Dull ar ei hun onglog i reoli'r broses bootstrapping ar redeg-amser. Rwyf wedi profi hyn gyda tair rhan ar y we onglog gwahanol ar yr un dudalen ac mae'n gweithio swyn.

</diwedd>

undefinedTanysgrifio i fy mlog.

Dilynwch fi ar Twitter yn http://www.twitter.com/pagalvin