Das IFRAME-Sandbox-Attribut blockiert AJAX-Aufrufe
Ich habe eine Bewerbung (http://localhost/MyApp
), wobei einige Teile über IFRAMES gerendert werden. Diese iframed Teile haben nichts mit dem Rest des DOM der Anwendung zu tun, also habe ich das angewendetsandbox
Attribut.
Der IFRAME wird folgendermaßen deklariert:
<iframe src="/MyApp/en/html/action?id=1" sandbox="allow-forms allow-scripts" seamless="seamless"></iframe>
Die iframed-Seite verfügt über eine Schaltfläche, die einen AJAX-Aufruf an dieselbe Webanwendung ausführt, jedoch nicht an eineHTTP GET
gibt der Browser a ausHTTP OPTIONS
das erscheint alsCancelled
, und ein Fehler tritt auf:
XMLHttpRequest cannot load http://localhost/MyApp/en/data/action?id=1. Cannot make any requests from null.
Ajax State 0 Error: HTTP 0
Wenn ich das hinzufügeallow-same-origin
zumsandbox
Attribut, es funktioniertIch lese hierAJAX-Aufrufe sollten davon nicht betroffen sein.
Warum passiert dies? Überlegt den Weg/MyApp/en/html/action
als Ursprung des gesamten IFRAME und Sperren der Anfrage auf vorherige Ebenen?
Prost.