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 ;-)