Есть ли решение 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>

Это просто!