1

Мы предоставляем фрагмент HTML, который наш клиент может встроить на свой веб-сайт, чтобы сделать обратный вызов для нашего API. Этот HTML является простой формой и Javascript-файлом, размещенным на нашем сервере.Межсетевой скриптовый тег, работающий в FF и Chrome, но не IE

Это то, что клиент хостов на их сайте (clientsite.com):

<script type="text/javascript" src="http://mysite.com/webcallback/callback_script.js"></script> 
<form onsubmit="makeCallback();return false;"> 
<input id="myInput" type="text" /> 
<input type="submit" value="Go" /> 
</form> 

Когда makeCallback вызывается скрипт, размещенного на mysite.com делает следующее:

var xhr = new XMLHttpRequest(); 
xhr.open("GET", "http://mysite.com/api/callback.php"); 
xhr.send(); 

Notice что домен скрипта и домен запроса XHR совпадают, но HTML, который содержит форму и тег сценария, находится на сайте clientite.com.

Это отлично работает в FF и Chrome, но в IE я получаю отказ в доступе к доступу. Я полагаю, что это имеет какое-то отношение к политике одного и того же происхождения, но я пытаюсь понять, почему это работает в FF и Chrome, но не в IE. Есть ли способ заставить его работать в IE?

Благодаря

ответ

1

Прилагаемый скрипт выполняется в рамках страницы, которая в том числе его, а не в рамках его собственной. Поэтому ваш код запрашивает у другого домена.

Браузеры, которые разрешают этот запрос, имеют более расслабленную версию междоменных ограничений.