Kuu arhiivid: Jaanuar 2015

HTTP 406 Viga kasutamisel nurgeliste $http.get vastu SharePointi ülejäänud lõpp-punktid

Värskendus: Marc AD ndersson märkis see suur tükk info: http://blogs.Office.com/2014/08/13/JSON-Light-Support-REST-SharePoint-API-released/. Mis seletab palju :).

See võib olla halvim pealkiri blogi postitus kunagi! Anyhoo.

Ma tavaliselt kõik minu prototüüpimiseks vastu O365 eksemplar. Mul on minu isiklik eksemplar, nii et ma ei peaks olema mures mõjutavate keegi teine. Nagu kõrvale-mäletad kui me nimetame ümber virtuaalarvutid läbi meie sülearvutid MOSS-SQL Server, IIS, Otsustades Hyper-V vs. VMWare? Anyhoo...

Mul oli arenenud app kasutades nurga selles keskkonnas, mis ei, muu hulgas, See:

$http.Get(serverUrl)
.edu(funktsioon(andmed, olek, päised, config) {

var getLinksResponse = andmed;

getLinksResponse.value.forEach(funktsioon(theResult) {

// ja nii edasi ja nii vaht

See töötas suurepäraselt kahest erinevaid SharePoint online keskkondades. Aga, Kuna kolleeg portinud see Cloudshare eksemplar, ta oli saada ka HTTP 406 tõrge (mis oli esimene kord, ma kunagi sain et üks, nii... Jee, Arvan). Me tegime natuke uurida ja märganud, "Nõustu" päise oli välja. SharePoint online oli täiesti rahul:

Aktsepteeri: taotlus/json

Kuid cloudshare eksemplari (mis on SP prem, virtual server võõrustas) tahtis klassikaline "odata = verbose" lisada ka:

Aktsepteeri: taotlus/json;odata = verbose

Kinnitada, et, lisasime päise sellisena:

var config = {päised: {
"Kinnita": "rakendus/json;odata = verbose'
}
};

$http.Get(serverUrl,config)
.edu(funktsioon(andmed, olek, päised, config) {

var getLinksResponse = andmed;

getLinksResponse.value.forEach(funktsioon(theResult) {

// ja nii edasi ja nii vaht

Mis lahti on 406, kuid seda muuta ka format vastamise. See oli rohkem... verbose. (haha!) Rohkem muudatusi oli vaja ja siin on lõpptulemus:

var config = {päised: {
"Kinnita": "rakendus/json;odata = verbose'
}
};

$http.Get(serverUrl,config)
.edu(funktsioon(andmed, olek, päised, config) {

var getLinksResponse = andmed;

getLinksResponse.d.Results.forEach(funktsioon(theResult) {

// ja nii edasi ja nii vaht

See ainult muutus on 30 hetke probleemi meile, nii me lucked. Loodetavasti keegi leiab see kasulik.

</lõpp>

Abi: Mitme nurga SharePointi Veebiosade lubamiseks samal lehel

See blogi postitusi kirjeldatakse, kuidas saab olla mitu Angular.js põhineva SharePointi veebiosade (via sisuredaktori veebiosa viitab) samal lehel. Ma helistan sisuredaktori veebiosa (CEWP) mis viitab JavaScript abil Angular.js raames on "nurgeline veebiosa."

Nurga 's bootstrap protsess on väga lihtne ja peaaegu iga näite leiate selle internets läheb midagi sellist:

<HTML ng-app = "myApp">

<blah /><blah /><blah />

</HTML>

See ei tööta, Aga, Kui soovite lubada mitu CEWP esindavad samal leheküljel mitu nurgeliste veebiosa. Nurga näidatakse ainult automaatselt bootstrap esimese ng-app direktiivi vastu see leiab – vähemalt nurgeliste nagu versiooni 1.3.6. Lahendus on päris lihtne – käsitsi bootstrap oma koodi asemel. Eespool nüüd muutub midagi sellist:

<keha>
<d
IV id =”bootstrapHere” NG-kontroller =”myController nagu theController”>
<blah /><blah /><blah />
</DIV>
</keha>

<script src =”//Ajax.googleapis.com/Ajax/libs/angularjs/1.3.6/Angular.js”></skripti>

<skripti>
Angular.Bootstrap(Angular.element(document.getElementById(“bootstrapHere”)),['myApp']);
</skripti>

Põhimõtteliselt, selle asemel kasutatakse ng-app element teha oma eellaadimisel, sa laksu peale elemendi ID. Seejärel, Kasutage selle alglaaduri() meetodi kohta nurk ise kontrollida ning eellaadimisel töödelda käitusaja. Olen testinud kolme erineva nurga veebiosadega ühel lehel ja see toimib võlu.

</lõpp>

undefinedTelli minu blogi.

Järgi mind vidistama kell http://www.twitter.com/pagalvin