Claus Schewe

Claus Schewe
07.06.2012
1 Kommentar(e)

Meshups werden in den Zeiten der Cloud immer wichtiger. Da darf eine Möglichkeit zur SharePoint-Integration nicht fehlen.

Wer mal versucht ein Meshup zu bauen, dass neben diversen Diensten wie Twitter auch Daten aus einer SharePoint-Liste anziehen soll, der wird früher oder später vor der Thematik mit domänenübergreifenden Skriptaufrufen stehen. ​Um Cross-Site-Scripting trotzdem zu ermöglichen kann man sich eines jQuery-Tricks bedienen und den ListData-Aufruf in einen JSONP-Aufruf verpacken. Dafür bedient verwendet man die jQuery-Funktion getJSON(). Ein Aufruf könnte z.B. so aussehen:

function getSharePointNews () {
    var sharePointSearchAPIUrl = "http://someUrl/_vti_bin/ListData.svc/news?filter=substringof('Finance', Title)&$top=10";
    try {$.getJSON(sharePointSearchAPIUrl,
                    resultCallback);
    } catch (exception) {
         log("Failed to retrieve news from SharePoint. Error Message: " + exception.message);
         log("Stack Trace: " + exception.stacktrace);
    }
}
 
function resultCallback(sharePointNews) {
// Do something with the news
}
 
Dabei ist zu beachten, dass ab jQuery-Version 1.5 diese Cross-Site-Aufrufe vorher vom Entwickler "genehmigt" werden müssen mit dem folgenden Aufruf:
 
$.support.cors = true;

Den gezeigten Code habe ich übrigens bisher nur im IE 9 getestet. Also vorher ausprobieren, ob es auch mit dem persönlichen Wunschbrowser funktioniert ;-)

Kommentar hinterlassen




 Security code

Kommentar(e)

Das ist besonders dann praktisch, wenn ich von Seiten außerhalb von SharePoint mal eben auch auf SharePoint-Listen zugreifen will. Ansonsten kann ich ja auch mit dem EcmaScript ObjectModel auf SharePoint Zugreifen. Die Zugriffe sehen dann ja fast wie

Henning| 07.06.2012 13:06:06