Существует ли решение jQuery, которое использует CORS, когда оно доступно, и обращается к XDomainRequest в MSIE и JSONP в браузерах с niether? - PullRequest
11 голосов
/ 31 декабря 2011

Я был достаточно глуп, чтобы поверить, что все современные браузеры поддерживают CORS (Cross-Origin Resource Sharing) .

Когда мой игрушечный JavaScript-инструмент не работал на IE9 или Opera, я обнаружил, что первый поддерживает только от CORS до XDomainRequest, что, по-видимому, jQuery не поддерживает. Opera пока не поддерживает CORS.

Теперь у jQuery есть абстрактный интерфейс, который выполняет обычные доменные AJAX-запросы, CORS запросы и даже JSONP запросы аналогичным образом.

Есть ли расширение этого интерфейса, которое позволяет ему работать даже с XDomainRequest и вернуться к JSONP, когда CORS недоступен?

Ответы [ 2 ]

6 голосов
/ 02 января 2012

Вот плагин для поддержки XDomainRequest в JQuery:

https://github.com/jaubourg/ajaxHooks/blob/master/src/xdr.js

Существует также запрос функции jQuery для добавления этой функции:

http://bugs.jquery.com/ticket/8283

Обратите внимание, что в отчете об ошибке сказано, что может быть проблема с плагином в IE9, поэтому YMMV.Это закончилось тем, что закрыли с причиной, учитывая, что плагин существует, чтобы сделать работу.

3 голосов
/ 15 ноября 2012

Взгляните на 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>

Это просто!

...