Межсайтовый вызов AJAX с уровнем XHR 2 - PullRequest
2 голосов
/ 17 августа 2011

В этом ответе говорится, что XmlHttpRequestObject Level 2 поддерживает межсайтовые вызовы ajax. Я знаю, что многие браузеры поддерживают множество функций HTML5. Это что-то, что поддерживает Chrome или Firefox (или каким-то чудом IE)?

Если да, то предлагает ли jQuery способ его использования при использовании метода $.ajax?

1 Ответ

2 голосов
/ 17 августа 2011

Да, такие браузеры, как Firefox> 3.5 и Safari> 4, Chrome> 3 поддерживают XmlHttpRequestObject Уровень 2, IE 8 имеет отдельную XDomainRequest. Несмотря на это, другая сторона (у которой вы запрашиваете данные) должна разрешать доступ к данным таким способом (через что-то, называемое CORS ), поэтому вы не можете делать междоменные запросы только на любые произвольные домен. Это может быть хорошо, если вы делаете запрос к некоторому совместимому удаленному API, но это не всегда так.

При этом я бы не рекомендовал междоменный AJAX, так как не вижу преимуществ, которые он дает. Блокировку браузера можно предотвратить с помощью прокси-сервера AJAX (обычный HTTP-запрос к удаленному домену выполняется сервером, а результат возвращается через вызов AJAX). Многие популярные браузеры также не поддерживают междоменный AJAX (IE 6, IE 7, нет версии Opera), поэтому вы создаете много проблем с совместимостью.

Как часть вашего вопроса, заданного для примера, вот статья о том, как этого добиться, включая небольшую демонстрацию. Он включает в себя файл cors.js, который, по-видимому, является кросс-браузерным междоменным AJAX-совместимым.

...