Есть ли решение jQuery, которое использует CORS, когда оно доступно, и возвращается к XDomainRequest на MSIE и JSONP в браузерах с niether?
Я был достаточно глупым, чтобы полагать, что все современные браузеры поддерживают CORS
(совместное использование ресурсов Cross-Origin).
Когда мой игрушечный инструмент JavaScript не работал на IE9 или Opera, я обнаружил, что первый поддерживает только CORS
через XDomainRequest
, который, похоже, не поддерживает jQuery. Opera еще не поддерживает CORS
.
Теперь jQuery имеет абстрактный интерфейс, который выполняет обычные запросы AJAX для одного домена, запросы CORS
и даже JSONP
запросы одинаковым образом.
Есть ли расширение для этого интерфейса, которое продолжает работать даже при XDomainRequest
и возвращается к JSONP
, когда CORS
недоступен?
Ответы
Ответ 1
Вот плагин для поддержки XDomainRequest в JQuery:
https://github.com/jaubourg/ajaxHooks/blob/master/src/xdr.js
Существует также запрос функции jQuery для добавления этой функции:
http://bugs.jquery.com/ticket/8283
Обратите внимание, что в отчете об ошибке говорится, что может возникнуть проблема с плагином в IE9, поэтому YMMV. Это закончило тем, что закрылось по той причине, что плагин существует для выполнения задания.
Ответ 2
Взгляните на xReader:
<script src="http://kincrew.github.com/xReader/xReader.full.js"></script>
<script type="text/javascript">
xReader("http://www.yahoo.com/", function(data) {
alert(data.content);
})
</script>
Это просто!