Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das Browser- oder Webview-Steuerelement erzwingt die Richtlinie desselben Ursprungs, die verhindert, dass ein Skript, das aus einer Domäne geladen wird, Eigenschaften einer Webseite aus einer anderen Domäne abrufen oder bearbeiten kann. Diese Richtlinie bedeutet, dass die Domäne einer angeforderten URL standardmäßig mit der Domäne der aktuellen Webseite identisch sein muss. Diese Richtlinie verhindert beispielsweise, dass eine Webseite in einer Domäne XmlHttpRequest-Webdienstaufrufe an eine andere Domäne als die, in der sie gehostet wird, durchführt.
Da Office-Add-Ins in einem Webview-Steuerelement gehostet werden, gilt die Richtlinie desselben Ursprungs auch für Skripts, die auf ihren Webseiten ausgeführt werden.
Die „Richtlinie des gleichen Ursprungs“ kann in vielen Situationen ein unnötiges Hindernis darstellen, z. B., wenn eine Webanwendung Inhalte und APIs über mehrere Unterdomänen hinweg hostet. Sie können einige gängige Techniken verwenden, um die Erzwingung von Richtlinien mit gleichem Ursprung sicher zu überwinden. Dieser Artikel bietet nur die kürzeste Einführung in einige von ihnen. Verwenden Sie die bereitgestellten Links, um mit ihrer Erforschung dieser Techniken zu beginnen.
Implementieren von serverseitigem Code unter Verwendung eines tokenbasierten Autorisierungsschemas
Eine Möglichkeit zum Beheben von Richtlinienbeschränkungen desselben Ursprungs besteht darin, serverseitigen Code bereitzustellen, der OAuth 2.0-Flows verwendet, um einer Domäne den autorisierten Zugriff auf Ressourcen zu ermöglichen, die in einer anderen gehostet werden.
Verwenden von Cross-Origin Resource Sharing (CORS)
Weitere Informationen zur Ressourcenfreigabe zwischen verschiedenen Ursprüngen finden Sie in den zahlreichen Ressourcen, die im Web verfügbar sind, z. B. Cross-Origin Resource Sharing (CORS).For more about cross-origin resource sharing, see the many resources available on the web, as Cross-Origin Resource Sharing (CORS).
Hinweis
Wenn Ihr Add-In ereignisbasierte Aktivierung oder integrierte Spamberichterstattung in Outlook verwendet, müssen Sie auch einen bekannten URI konfigurieren, um CORS oder SSO zu aktivieren. Weitere Informationen finden Sie unter Verwenden des einmaligen Anmeldens (Single Sign-On, SSO) oder der ressourcenübergreifenden Ressourcenfreigabe (Cross-Origin Sharing, CORS) in Ihrem ereignisbasierten oder Spamberichterstellungs-Office-Add-In.
Erstellen Eines eigenen Proxys mit iframe und postMessage (fensterübergreifendes Messaging)
Ein Beispiel zum Erstellen eines eigenen Proxys mit iframe und postMessagefinden Sie unter Fensterübergreifendes Messaging.
Verwenden von JSONP für den anonymen Zugriff
Eine weitere Möglichkeit zum Überwinden von Richtlinienbeschränkungen mit gleichem Ursprung ist die Verwendung von JSONP , um einen Proxy für den Webdienst bereitzustellen. Dazu fügen Sie ein script-Tag mit einem src-Attribut ein, das auf Skript verweist, das in einer beliebigen Domäne gehostet wird. Sie können die script-Tags programmgesteuert erstellen, die URL dynamisch erstellen, auf die das srcAttribut zeigen soll, und dann Parameter an die URL über URI-Abfrageparameter übergeben. Webdienstanbieter erstellen und hosten JavaScript-Code an spezifischen URLs und geben je nach URI-Abfrageparametern unterschiedliche Skripts zurück. Diese Skripts werden anschließend an der Stelle ausgeführt, an der sie eingefügt wurden, und funktionieren wie erwartet.
Im folgenden JSONP-Beispiel wird eine Technik verwendet, die in jedem Office-Add-In funktioniert.
// Dynamically create an HTML SCRIPT element that obtains the details for the specified video.
function loadVideoDetails(videoIndex) {
// Dynamically create a new HTML SCRIPT element in the webpage.
const script = document.createElement("script");
// Specify the URL to retrieve the indicated video from a feed of a current list of videos,
// as the value of the src attribute of the SCRIPT element.
script.setAttribute("src", "https://gdata.youtube.com/feeds/api/videos/" +
videos[videoIndex].Id + "?alt=json-in-script&callback=videoDetailsLoaded");
// Insert the SCRIPT element at the end of the HEAD section.
document.getElementsByTagName('head')[0].appendChild(script);
}
Hinweis
JSONP ist eine Legacytechnik, die ein höheres Sicherheitsrisiko aufweist als moderne Alternativen. Verwenden Sie JSONP nur, wenn Sie ältere Integrationen beibehalten müssen, die noch nicht migriert werden können. Für die Neuentwicklung bevorzugen Sie CORS oder einen serverseitigen Proxy.
Siehe auch
Office Add-ins