2011-12-31 1 views
11

Я был достаточно глуп, чтобы поверить, что все современные браузеры поддерживаются CORS (Cross-Origin Resource Sharing).Есть ли решение jQuery, которое использует CORS, когда оно доступно, и возвращается к XDomainRequest на MSIE и JSONP в браузерах с niether?

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

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

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

ответ

6

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

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

Существует также функция запроса JQuery, чтобы добавить эту функцию:

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

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

3

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

Это просто!

+0

Спасибо, Martijn Pieters. Я плохо разбираюсь в английском. n.n – SD05

+0

Мне нравится xReader после быстрой игры с ним. Но после того, как он использовал его для чтения количества хитов google для поискового запроса в полдюжины раз, Google автоматически блокировал его. Если Google, я думаю, другие сайты тоже могут. – hippietrail

+0

@hippietrail, я хочу проверить это. Не могли бы вы сказать, какой URL был использован. – SD05

 Смежные вопросы

  • Нет связанных вопросов^_^