Atrybut piaskownicy IFRAME blokuje wywołania AJAX
Mam aplikację (http://localhost/MyApp
), gdzie niektóre części są renderowane za pomocą IFRAMES. Te części iframed nie mają nic wspólnego z resztą DOM aplikacji, więc zastosowałemsandbox
atrybut.
Ramka IFRAME jest deklarowana w ten sposób:
<iframe src="/MyApp/en/html/action?id=1" sandbox="allow-forms allow-scripts" seamless="seamless"></iframe>
Strona iframed ma przycisk, który wywołuje AJAX do tej samej aplikacji internetowej, ale zamiast tegoHTTP GET
, przeglądarka wydaje aHTTP OPTIONS
który pojawia się jakoCancelled
i zdarza się błąd:
XMLHttpRequest cannot load http://localhost/MyApp/en/data/action?id=1. Cannot make any requests from null.
Ajax State 0 Error: HTTP 0
Jeśli dodamallow-same-origin
dosandbox
atrybut, to działaPrzeczytałem tutaj, nie miało to wpływać na wywołania AJAX.
Dlaczego to się dzieje? Rozważa ścieżkę/MyApp/en/html/action
jako źródło całego IFRAME i blokowanie żądania do poprzednich poziomów?
Twoje zdrowie.