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>

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

Ad a Ateb

Ni fydd eich cyfeiriad e-bost yn cael ei gyhoeddi. Meysydd gofynnol yn cael eu marcio *