mesačné archívy: Januára 2015

HTTP 406 Chyba pri použití uhlové $http.get proti SharePoint ZVYŠOK koncové body

Aktualizácia: Marc AD ndersson poukázal na to, tento veľký kus info: http://blogs.Office.com/2014/08/13/JSON-Light-support-Rest-SharePoint-API-Released/. To vysvetľuje veľa :).

To môže byť niekedy najhoršie názov blogu! Anyhoo.

Zvyčajne robiť, všetky moje prototypovania proti O365 stupňa. Mám moje osobné stupňa tak, že nemusím obávať ovplyvňujúce niekto. Ako stranou-Pamätajte si, kedy nazývame vykonáva okolo virtuálnych strojov na našich laptopoch machom-SQL Server, IIS, rozhodovaní vs Hyper-V. VMWare? Anyhoo...

Mali vyvinuté aplikácie pomocou uhlového v tomto prostredí, ktoré má, okrem iného, this:

$http.Get(AdresaURLServera)
.úspech(Funkcia(údaje, stav, hlavičky, config) {

var getLinksResponse = údaje;

getLinksResponse.value.forEach(Funkcia(theResult) {

// a tak ďalej a tak penou

To bolo v poriadku len v dvoch rôznych SharePoint online prostredie. Avšak, keď môj kolega portovaný na inštanciu Cloudshare, on bol stále HTTP 406 chyba (ktorý bol prvýkrát, čo som kedy dostal ten, Takže... hurá, hádam). Som trochu výskumu a všimol si, že "Prijať" Hlavička bol preč. On-line služby SharePoint bol úplne spokojný s:

Prijať: Aplikácia/json

Ale cloudshare stupňa (čo je SP na prem, hostil na virtuálnom serveri) chcel klasické "Odate = ukecaný" pridané v aj:

Prijať: Aplikácia/json;Odata = podrobného

Opraviť to, pridali sme hlavičky ako také:

var config = {hlavičky: {
"Accept": "aplikácie/json;Odata = verbose "
}
};

$http.Get(AdresaURLServera,config)
.úspech(Funkcia(údaje, stav, hlavičky, config) {

var getLinksResponse = údaje;

getLinksResponse.value.forEach(Funkcia(theResult) {

// a tak ďalej a tak penou

Že sa zbavili 406, ale to tiež zmenil formát odpovede. To bolo viac... podrobného. (haha!) Ďalšie zmeny boli požadované, a tu je konečný výsledok:

var config = {hlavičky: {
"Accept": "aplikácie/json;Odata = verbose "
}
};

$http.Get(AdresaURLServera,config)
.úspech(Funkcia(údaje, stav, hlavičky, config) {

var getLinksResponse = údaje;

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

// a tak ďalej a tak penou

Len sa zmenil 30 minúte problém pre nás, tak my lucked von. Dúfajme, že niekto nájde to užitočné.

</koniec>

Postupy: Povoliť viac uhlové SharePoint webových častí na rovnakej stránke

Tento blog príspevky popisuje, ako môžete mať viac Angular.js založený SharePoint webových častí (odkazuje pomocou webovej časti editor obsahu) na rovnakej stránke. Som volanie webovej časti editor obsahu (CEWP) ktorý odkazuje JavaScript postavený s využitím rámca Angular.js "Uhlové webová časť."

Uhlová je zavádzací proces je super ľahké a len asi každý príklad nájdete na internety ide niečo takého:

<HTML ng-app = "MôjProgram">

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

</HTML>

Tento štiepi, Avšak, Ak chcete povoliť viaceré CEWP zastupujúci viac uhlové webových častí na rovnakej stránke. Uhlová bude automaticky len bootstrap proti prvej smernice ng-app to nájde – aspoň už uhlové verzia 1.3.6. Riešenie je pomerne jednoduché-manuálne namiesto štartovaciu svoj kód. Vyššie sa teraz zmení na niečo takého:

<telo>
<d
IV identifikácia =”bootstrapHere” ng-controller =”myController ako theController”>
<bla /><bla /><bla />
</DIV>
</telo>

<skript src =”//Ajax.googleapis.com/AJAX/libs/angularjs/1.3.6/angular.js”></skript>

<skript>
angular.Bootstrap(angular.element(document.getElementById(“bootstrapHere”)),["MôjProgram"]);
</skript>

V podstate, Namiesto použitia ng-app na prvok robiť vaše bootstrapping, si pohlavok ID na tento prvok. Potom, Použite bootstrap() metóda na uhlové sám kontrolovať bootstrapping procesu spustenia. Testoval som to s tromi rôznymi uhlové webovými časťami na rovnakej stránke a funguje to kúzlo.

</koniec>

undefinedVyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin