Какие браузеры позволяют переадресовать ajax-вызовы с помощью Access-Control-Allow-Origin: *
? Я устанавливаю службу REST и пытаюсь решить, нужно ли мне поддерживать JSONP, чтобы разрешить доступ к javascript через междоменный домен или если он достаточно хорош, чтобы установить заголовок Access-Control-Allow-Origin.
Какие браузеры допускают переадресацию вызовов ajax с помощью Access-Control-Allow-Origin: *?
Ответ 1
Здесь приводится одна ссылка, в которой предполагается, что поддержка в современных браузерах разумна (но см. примечание в конце этого ответа), предполагая, что клиентская сторона код специально предназначен для IE. (IE8 и IE9 поддерживают CORS, но не через XMLHttpRequest
— вместо этого вы должны использовать XDomainRequest
, и стоит отметить, что jQuery или Prototype делает это для вас в своих оболочках ajax — я не знаю о другие библиотеки. В IE10, наконец, все правильно.) В этой статье говорится, что CORS поддерживается в настольных версиях:
- IE8 + (через
XDomainRequest
), IE10 + (правильно) - Firefox 3.6 +
- Safari 4.0 +
- Chrome 6 +
- Opera 12.1 +
... а также
- iOS Safari 3.2 +
- Android-браузер 2.1 +
Вы должны спросить себя, что такое ваш целевой рынок и могут ли они использовать старые версии IE, потому что это имеет значение довольно много, на кого вы нацелились. Но в целом вы все еще (на данный момент), вероятно, хотите посмотреть интерфейс JSONP — даже в основном на внутреннем рынке США, IE6 + IE7 = около 20% пользователей. Я не знаю многих сайтов, которые могут просто игнорировать пятую часть рынка.:-) И если вы посмотрите на корпоративных пользователей или пользователей в Азии или Африке или в Центральной Америке, это число заметно возросло. Вышеизложенное было правдой в 2010 году. Здесь, в 2013 году, Китай действительно является единственным держателем, использующим IE6 ( > 24%). Во всем мире пользователи IE6 и IE7 перешли на IE8 и IE9, и даже крупные корпоративные и правительственные пользователи наконец "поняли" о рисках безопасности. IE8 будет с нами некоторое время (как это имеет место, поскольку IE идет на Windows XP), но вы можете поспорить, что почти 20% использования IE9 скоро будет в IE10.
Ответ 2
У меня возникли проблемы при использовании Access-Control-Allow-Origin: *. Я считаю, что это связано с кукисами и запросами предварительной проверки (POST). Поэтому лучше указать, из какого домена вы собираетесь совершать эти вызовы.