¿Cómo determinar si usar XMLHttpRequest o XDomainRequest?

Depende del browser, me gustaría determinar qué object se debe utilizar. Para IE <10 debe ser XDomainRequest , para el rest XMLHttpRequest .

 if(window.XDomainRequest) //basically 'if IE' //XDomainRequest else //XMLHttpRequest 

Como IE10 tiene el soporte de Intercambio de resources de origen cruzado, es mejor usar el object XMLHttpRequest con él. Este código ya no funcionará bien (supongo que IE10 aún tiene soporte para XDomainRequest , XDomainRequest si me equivoco, no puedo probarlo). La comprobación directa del browser no es la forma más segura de determinar las cosas. Entonces mi pregunta, ¿cuál es la mejor manera de determinar qué object se debe utilizar? Estoy buscando una solución JS (no jQuery) pura.

One Solution collect form web for “¿Cómo determinar si usar XMLHttpRequest o XDomainRequest?”

Así es como lo hago, pero no es agradable.

 var useXDR = window.XDomainRequest && (window.XMLHttpRequest && new XMLHttpRequest().responseType === undefined); 

Funciona porque IE10 tiene un responseType de la cadena vacía para un XHR recién creado, pero en las versiones de IE que no son compatibles con XHR2, no está definido.

Si avanza por este path, tenga en count que XDR es mucho más difícil de depurar que XHR; le da less información cuando algo sale mal, y algunas características que funcionan bien incluso en implementaciones anteriores de XmlHttpRequest no funcionan en absoluto en XDR. .

Incluso si su browser no es compatible con XHR2 y si es compatible con XDR, igual querrá usar XHR cuando solicite urls desde el mismo host / puerto desde el que se carga su página.

  • ¿Cómo identificar las requestes hechas por un cliente Flash vs. JavaScript?
  • XMLHttpRequest onprogress total siempre es 0 en Chrome
  • ¿Por qué debería reutilizar los objects XmlHttpRequest?
  • Opinión sobre requestes sincrónicas en trabajadores de la web
  • Jquery obtiene datos sobre el error XHR
  • ¿Hay algún límite de datos de tamaño para el método de publicación ajax xmlhttprequest mi xhr get cut off?
  • HTML5 Cross-domain XmlHttpRequest vs. Older XmlHttpRequests
  • cómo cargar la image en el background?
  • leer el file con xmlhttprequest da como resultado la input de la console de error
  • No hay progreso de XMLHttpRequest 2 en el browser de valores de Android
  • XHR Progress Only Firing Once
  • XMLHttpRequest setRequestHeader para cada request
  • Descarga de files PDF a través de XHR Request
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.