2013-05-27 2 views
0

Чтобы использовать XMLHttpRequest для извлечения данных с сервера из кода javascript, нужно ли выполнять условные проверки типа браузера, в котором работает код?
Есть ли стандарт код шаблона при использовании XMLHttpRequest?Всегда ли доступен XMLHttpRequest?

if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

Или это больше не требуется?
Я предполагаю, что использование какой-либо другой библиотеки просто сохраняет эти проверки?

+0

В современных браузерах да. jQuery 2.0 предполагает, что это так. Однако jQuery 1.9 этого не делает. – Blender

+0

@Blender: Итак, код выглядит следующим образом: http: //www.w3schools.com/xml/xml_parser.asp - стандартный шаблонный код при использовании 'XMLHttpRequest'? – Cratylus

+0

@Blender: более новая версия делает больше проверок совместимости, чем предыдущая? Я предполагаю, что это из-за плохого предположения, т. Е. Ошибка в более старой версии? – Cratylus

ответ

0

IE 5 и 6 не поддерживают объект xmlhttprequest, и вам нужно создать активный объект x, поэтому, если вы ожидаете, что пользователи будут иметь IE 6 или 5, тогда вы должны проверить. Насколько я знаю, у всех других браузеров есть XMLHttpRequest.

Если вы полагаетесь на CORS заголовки в ваших XMLHttpRequests, то вы должны использовать XDomainRequest для IE версии меньше 10 и больше, чем 7 (не думаю, что IE 7 поддерживает CORS на всех XMLHttpRequest, XDomainRequest или иным образом) ,

+0

Спасибо за анонимный downvote, позаботьтесь о том, почему? – HMR

+0

Скорее всего, это потому, что ваш ответ кажется не связанным с вопросом или выходом. Не знаете, почему вы упоминаете CORS. Кроме того, IE5 и IE6 мертвы. Полагаю, это то, о чем говорил ассер, когда говорил «больше нет». –

+0

CORS - это стандарт, который поддерживает браузеры в своих объектах запроса XHR, но НЕ в IE 8 и 9. Если вы не используете CORS в своем XHR, это не значит, что кто-то еще не планирует это делать. Предположим, что браузер имеет объект XMLHttpRequest и успешно выполняет ваш запрос CORS. Перед тем, как OP обновил вопрос, он упомянул проверку типа браузера; проверка типа функции предпочтительна для проверки браузера, поэтому стоит упомянуть. – HMR

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