miesięczne archiwum: Stycznia 2015

HTTP 406 Błąd przy użyciu kątowe $http.get przeciwko SharePoint pozostałych punktów końcowych

Aktualizacja: Marc AD ndersson wskazał ten wielki kawałek informacji: http://blogs.Office.com/2014/08/13/JSON-Light-support-Rest-SharePoint-API-released/. To wiele wyjaśnia :).

To może być najgorszym tytuł blogu nigdy! Anyhoo.

Zazwyczaj jak wszystkie moje prototypów przed wystąpienie O365. Mam mój osobisty wystąpienie, tak że nie trzeba się martwić o wpływających na nikogo innego. Tak na marginesie-pamiętam kiedy nazywamy prowadzona wokół maszyn wirtualnych na laptopy z mech – SQL Server, USŁUGI IIS, decydującym vs Hyper-V. VMWare? Anyhoo...

I rozwinął aplikacji za pomocą kątowa w tym środowisku, który robi, między innymi, to:

$http.get(serverUrl)
.sukces(Funkcja(dane, stan, nagłówki, config) {

var getLinksResponse = dane;

getLinksResponse.value.forEach(Funkcja(theResult) {

// i tak dalej i tak piany

To działa dobrze w dwóch różnych środowisk SharePoint. Jednakże, Kiedy mój kolega przeniesiony do wystąpienie Cloudshare, był już HTTP 406 błąd (który został po raz pierwszy kiedykolwiek dostał ten jeden, tak... yay, Tak myślę). Zrobiłem trochę badań i zauważyłem, że "Akceptuj" nagłówek był wyłączony. Usługi SharePoint online był całkowicie zadowolony z:

Zaakceptować: aplikacji/json

Ale cloudshare wystąpienie (czyli SP na prem, hostowane na serwerze wirtualnym) chciał classic "odata = verbose" dodaje się również w:

Zaakceptować: aplikacji/json;odata = verbose

Aby ustalić, że, Dodaliśmy nagłówka jako takie:

var config = {nagłówki: {
'Accept': "aplikacja/json;odata = verbose'
}
};

$http.get(serverUrl,config)
.sukces(Funkcja(dane, stan, nagłówki, config) {

var getLinksResponse = dane;

getLinksResponse.value.forEach(Funkcja(theResult) {

// i tak dalej i tak piany

Że dostał uwalniać od 406, ale to także zmieniony format odpowiedzi. To było więcej... pełne. (haha!) Zmiany były potrzebne i oto wynik końcowy:

var config = {nagłówki: {
'Accept': "aplikacja/json;odata = verbose'
}
};

$http.get(serverUrl,config)
.sukces(Funkcja(dane, stan, nagłówki, config) {

var getLinksResponse = dane;

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

// i tak dalej i tak piany

To tylko zwrócił się do 30 minut problem dla nas, więc mamy pecha. Mam nadzieję, że ktoś znajdzie to przydatne.

</koniec>

Instrukcje: Umożliwić wielu kątowe SharePoint Web Part na tej samej stronie

Ten blog postów opisuje, jak można mieć wiele Angular.js oparciu web Part programu SharePoint (odwołanie za pośrednictwem składnika web part Edytor zawartości) na tej samej stronie. I 'm calling w składniku web part Edytor zawartości (CEWP) odwołujący JavaScript, zbudowany przy użyciu Angular.js framework "kątowe części sieci Web."

Kątowa w proces ładowania jest bardzo proste i prawie każdy przykład, znajdziesz na internets idzie coś takiego:

<HTML ng-app = "MojaAplikacja">

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

</HTML>

To psuje, Jednakże, Jeśli chcesz, aby umożliwić wielu CEWP reprezentujących wiele kątowe składników web Part na tej samej stronie. Kątowa będzie tylko automatycznie bootstrap przed pierwszą dyrektywę ng-app to znajdzie – co najmniej od wersji kątowej 1.3.6. Rozwiązanie jest bardzo proste-ręcznie uruchamiania kodu zamiast. Powyżej teraz zmienia się na coś takiego:

<organ>
<d
IV id =”bootstrapHere” ng kontroler =”myController jako theController”>
<bla /><bla /><bla />
</DIV>
</organ>

<skrypt src =”//AJAX.googleapis.com/AJAX/libs/angularjs/1.3.6/Angular.js”></skrypt>

<skrypt>
Angular.bootstrap(Angular.element(document.getElementById(“bootstrapHere”)),["MojaAplikacja"]);
</skrypt>

Zasadniczo, zamiast ng aplikacja na element robić swoje bootstrap, slap ID na tego elementu. Następnie, Użyj bootstrap() Metoda na skośne sam kontrolować bootstrap procesu w czasie wykonywania. Ja testowałem to z trzech różnych kątowe składników web Part na tej samej stronie i działa czar.

</koniec>

undefinedSubskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin