Почему этот междоменный запрос работает в других браузерах, но не в IE9?

У меня есть код Ajax, который работает в Safari, Chrome и Firefox, но не в IE9.

Страница находится на http://foo.com/test.aspx , и она делает запрос AJAX к веб-сервису, размещенному на https://service.foo.com . Я думал, что у меня не будет никаких проблем с междоменными доменами, но, учитывая, что IE9 блокирует его, похоже, что да: (

var tempUrl = "https://service.foo.com/dummy.svc/test?hi=bye";
$.get(tempUrl, "html");

Как я уже упоминал, код работает в трех других браузерах, но не в IE9. касается только IE9, а не IE8 или старше).

Я покопался и нашел эту статью в MSDN, в которой говорится:

Междоменные запросы требуют взаимных согласие между веб-страницей и сервер. Вы можете инициировать междоменный запрос на вашей веб-странице путем создания объекта XDomainRequest от оконного объекта и открыв подключение к определенному домену. В браузер запросит данные из сервер домена, отправив Origin заголовок со значением происхождения. Это только завершит соединение если сервер отвечает Заголовок Access-Control-Allow-Origin из либо *, либо точный URL-адрес запрашивающая страница. Это поведение является частью консорциума World Wide Web (W3C) Работа веб-приложения Проект фреймворка группы на стороне клиента междоменное общение, которое Объект XDomainRequest интегрируется с.

Прежде чем я пойду по пути использования XDR, я хотел проверить с людьми более умными, чем я, правильный ли это подход или нет.

  1. Добавить Response.AddHeader ("Access-Control -Allow-Origin "," * "); на мою страницу
  2. Создать код jscript условия, который обнаруживает IE9 и использует XDR вместо обычного вызова jquery, который я использую с $. Get .

Я полностью отключен или это правильный способ?

(Если это правильный путь, то где же заголовок ответа Acecss-Control-Allow-Origin - - на моей странице по адресу http://foo.com/test.aspx или в веб-сервисе по адресу https://service.foo.com ?)

6
задан TMC 23 June 2011 в 07:45
поделиться