Тег междоменного скрипта, работающий в FF и Chrome, но не в IE - PullRequest
1 голос
/ 24 августа 2010

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

Это то, что клиент размещает на своем веб-сайте (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();

Обратите внимание, что домен скрипта и домен запроса XHR совпадают, но HTML-код, на котором размещается форма и тег скрипта, находится на clientsite.com.

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

Спасибо

1 Ответ

1 голос
/ 24 августа 2010

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

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

...