JQuery - т.е. - Ajax-запрос работает во всех браузерах, но т. е. - тип контента изменен - PullRequest
0 голосов
/ 21 февраля 2012

У меня есть определенный XML-ответ на сервере, который я хочу использовать в качестве источника в запросе AJAX со своей страницы. Сервер правильно настроен для работы междоменных запросов.

Проблема в типе контента - он установлен на 'text/html', и я не могу это изменить.

Большинство браузеров, похоже, рады принять XML-ответ с этим типом контента. Пока мой код работает в любой последней версии Firefox, Chrome и Safari.

Internet Explorer 8 доставляет мне неприятности.

Я подготовил jsfiddle, пытаясь смоделировать мою проблему:

http://jsfiddle.net/LPa45/4/

Для этого jsfiddle в службу /echo/html (которая возвращает 'text/html' в типе содержимого) отправляется запрос AJAX, но затем он используется в качестве ответа xml. Параметр "accepts", даже если он установлен для этой конкретной цели, на самом деле ни на что не влияет - я могу удалить его, и все работает на FF, Chr тоже.

Но я не могу заставить его работать на IE8. У кого-нибудь есть намеки?

Спасибо!

Ответы [ 2 ]

1 голос
/ 24 февраля 2012

Проблема заключалась в том, что я думал, что политика того же происхождения была решена директивой Access-Control-Allow-Origin "*" для Apache, но оказывается, что IE8 не уважает ее .

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

Но!

Как только прокси-сервер заработал, я столкнулся с той проблемой, о которой упоминал Акиллер, иотвечая - IE8 не имеет Array.map.

Итак, я отмечаю, что ответ правильный, но имейте в виду, что это не полный ответ!Вам тоже нужен прокси.

1 голос
/ 21 февраля 2012

Глядя на вывод консоли (я использую IE9 в режиме IE8, поэтому в чистом IE8 это может не совпадать), он ошибается, потому что функция Array.Map () недоступна. Похоже, что Google это добавил в IE9.

См. этот ответ для функции карты, которую вы можете использовать, которая должна решить вашу проблему.

Скрипка: http://jsfiddle.net/WvmBL/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...