Межсайтовый вызов AJAX с уровнем XHR 2
Этот ответ говорит о том, что XmlHttpRequestObject Level 2 поддерживает межсайтовые вызовы ajax. Я знаю, что многие браузеры поддерживают множество функций HTML5. Это что-то, что поддерживает Chrome или Firefox (или каким-то чудом IE)?
Если да, то предлагает ли jQuery способ его использования при использовании $.ajax
метод?
1 ответ
Да, такие браузеры, как 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-совместимый.