У меня есть код 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, я хотел проверить с людьми более умными, чем я, правильный ли это подход или нет.
Response.AddHeader ("Access-Control -Allow-Origin "," * ");
на мою страницу $. Get
. Я полностью отключен или это правильный способ?
(Если это правильный путь, то где же заголовок ответа Acecss-Control-Allow-Origin
- - на моей странице по адресу http://foo.com/test.aspx или в веб-сервисе по адресу https://service.foo.com ?)