Kuukausiarkistot: Tammikuuta 2015

HTTP 406 Virhe käytettäessä kulmikas $http.get vastaan SharePoint loput loppupisteet

Päivitys: Marc AD ndersson huomautti, tämä suuri pala info: http://blogs.Office.com/2014/08/13/JSON-Light-support-Rest-SharePoint-API-Released/. Tämä selittää paljon :).

Se voi olla pahin otsikko blogi koskaan! Anyhoo.

En yleensä kaikki minun prototyyppien vastaan O365-esiintymä. Minulla on minun henkilökohtainen tapauksessa, jotta ei tarvitse olla huolissaan vaikuttaa joku muu. Sivuhuomautuksena-muistettava, kun kehotamme kuljettaa ympäri virtuaalikoneita meidän läppäreissä MOSS – SQL Server, IIS, päättää Hyper-V vs. VMWare? Anyhoo...

Olin kehittänyt app avulla kulmikas tässä ympäristössä, joka tekee, muun muassa, Tämä:

$http.Get(serverUrl)
.menestys(funktio(tiedot, tila, otsikot, config) {

var getLinksResponse = data;

getLinksResponse.value.forEach(funktio(tulokset toimijalle) {

// ja niin edelleen ja niin Vaahdota

Tämä toimi hienosti kahdessa eri SharePoint online ympäristöissä. Kuitenkin, Kun kollegani ennustaa sen Cloudshare esiintymä, Hän oli tulossa HTTP 406 Virhe (mikä oli ensimmäistä kertaa olen koskaan saanut tuosta, joten... jee, Arvaan). Teimme vähän tutkimusta ja huomasin, että "Hyväksy"-otsikon oli pois. SharePoint Onlinessa on täysin tyytyväinen:

Hyväksy: sovellus/json

Mutta cloudshare esiintymä (Mikä on SP prem, isännöi vuonna virtuaalinen palvelin) Ostetaan klassikko "odata = verbose" lisätään myös:

Hyväksy: sovellus/json;OData = verbose

Vahvistaa, että, Lisäsimme otsikon sellaisenaan:

var config = {otsikot: {
"Salli": "application/json;OData = verbose "
}
};

$http.Get(serverUrl,config)
.menestys(funktio(tiedot, tila, otsikot, config) {

var getLinksResponse = data;

getLinksResponse.value.forEach(funktio(tulokset toimijalle) {

// ja niin edelleen ja niin Vaahdota

Että pääsi eroon 406, mutta myös muuttaa vastauksen muoto. Se oli enemmän... verbose. (haha!) Lisää muutoksia ja tässä on lopputulos:

var config = {otsikot: {
"Salli": "application/json;OData = verbose "
}
};

$http.Get(serverUrl,config)
.menestys(funktio(tiedot, tila, otsikot, config) {

var getLinksResponse = data;

getLinksResponse.d.Results.forEach(funktio(tulokset toimijalle) {

// ja niin edelleen ja niin Vaahdota

Tämä vain tuli 30 meille hetken ongelma, joten meidän lucked. Toivottavasti joku pitää tätä hyödyllisenä.

</loppu>

Toimintaohjeet: Mahdollistaa useita kulmikas SharePointin WWW-osista samalla sivulla

Tässä blogissa virkaa kuvataan, miten voit olla useita Angular.js perustuvat SharePoint-osa (viitatun sisällön muokkaus-web-osan kautta) samalla sivulla. Pyydän sisällön muokkaus-web-osan (CEWP) joka viittaa ohjelman rakennettu Angular.js yhteydessä "kulmikas-Web-osasta.

Kulmikas n alkulatauksen on super helppoa ja vain noin joka esimerkki löydät internets menee jotain tällaista:

<HTML ng-app = "myApp">

<blaa /><blaa /><blaa />

</HTML>

Tämä murtaa, kuitenkin, Jos haluat ottaa käyttöön useita CEWP edustavat useita kulmikas web-osia samalla sivulla. Kulmikas automaattisesti bootstrap ensimmäinen ng-app direktiiviä vastaan sitä löytää – ainakin kulmikas versiosta 1.3.6. Ratkaisu on hieno herkkäuskoinen – manuaalisesti bootstrap koodi sen sijaan. Edellä nyt muuttuu jotain tällaista:

<kehon>
<d
IV id =”bootstrapHere” ng-controller =”myController kuin theController”>
<blaa /><blaa /><blaa />
</div>
</kehon>

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

<Script>
angular.bootstrap(angular.Element(document.getElementById(“bootstrapHere”)),["myApp"]);
</Script>

Pohjimmiltaan, sen sijaan, että ng-app elementin tehdä oman näytönohjaimen, lämmintä kättä päälle elementin tunnus. Sitten, käyttää bootstrap() menetelmä kulmikas itse hallita bootstrapping prosessin suorituksen aikana. Olen testannut tätä kolme eri kulmikas web-osaa samalla sivulla ja se toimii viehätys.

</loppu>

undefinedTilaa blogiin.

Noudata minut viserrys http://www.twitter.com/pagalvin