SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




SharePoint-Hosted App - Listenzugriffe

Dieser Beitrag hat 5 Antworten

Ohne Rang
455 Beiträge
Andreas St. erstellt 12 Juli 2013 14:54
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

 

ich beschäftige mich gerade mit der Entwicklung von SP-hosted-Apps. Ich möchte aus meiner App heraus mittels REST eine neue Liste anlegen.

Leider bekomme ich immer ein Access Denied im VS-Debugger.

Liegt es daran, dass die App in einer anderen Domäne (separates Web) läuft?

Wenn ja, wie kann man das lösen?

 

Danke und einen schönen Gruß!!!

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 12 Juli 2013 15:39
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das ist relativ einfach:

Du bekommst den Kontext des App-Webs so: SP.ClientContext.get_current()
Deine App bekommt die URL des Host-Webs als GET-Parameter (QueryString) mit dem Namen SPHostUrl. Damit kannst Du Dir den Kontext auf das Host-Web holen: new SP.AppContextSite(appCtx, hostUrl)
Jetzt kommst Du an die ganzen Objekte über ihren jeweiligen Kontext:
var appWeb = appCtx.get_web();
var hostWeb = hostCtx.get_web();

Laden und ausführen mußt Du sie aber immer über den App-Context:
appCtx.load(appWeb);
appCtx.executeQueryAsync( ... , ... );

Wenn Du das CSOM gar nicht willst, brauchst Du für den REST-Aufruf aber nur den QueryString-Parameter SPHostUrl.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
455 Beiträge
Andreas St. Als Antwort am 15 Juli 2013 09:35
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

Danke für die Antwort! Eigentlich verwende ich ja schon die richtige URL (habe sie einmal "fest codiert".

Der folgende Fehler kommt bei dem Quellcode:

Unhandled exception at line 29, column 13 in http://apps-5ddeab49b149f3.something.spapps.spserver/sites/dev/SharePointApp1/Scripts/App1.js

0x800a138f - JavaScript runtime error: Unable to get property 'results' of undefined or null reference


jQuery.ajax({
url: "/sites/dev/_api/web/lists/getbytitle('MyList')/items$select= Title ,ID, Modified",
type: "GET",
headers: { "Accept": "application/json;odata=verbose" },
success: function (data, textStatus, xhr) {
var dataResults = data.d.results; //hier tritt der Fehler auf!
alert(dataResults[0].Title);
},
error: function (xhr, textStatus, errorThrown) {
alert("error:" + JSON.stringify(xhr));
}
});

 

Viele Grüße!

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 16 Juli 2013 08:38
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Schau Dir das einfach mal im Debugger an. data.d.results scheint es nicht zu geben. Prüfe mal, ob es data.d gibt und welche Felder es hat.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
455 Beiträge
Andreas St. Als Antwort am 16 Juli 2013 09:32
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

ich bekomme da nur ein riesen XML-Dokument zurück.....

Wenn ich im Vergleich einmal /_api/web/currtentuser" abfrage, bekomme ich ein vernünftiges Objekt zurück.

Irgendwie scheint da was nicht zu stimmen.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 16 Juli 2013 09:39
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Klar bekommst Du da ein großes Objekt. Du fragst ja die Elemente einer Liste ab und wenn die viele Elemente enthält ist das völlig normal.

Viele Grüße
Andi
af @ evocom de
Blog