Pour référence future, la détection complète des fonctionnalités CORS devrait ressembler à quelque chose comme ceci :
//Detect browser support for CORS
if ('withCredentials' in new XMLHttpRequest()) {
/* supports cross-domain requests */
document.write("CORS supported (XHR)");
}
else if(typeof XDomainRequest !== "undefined"){
//Use IE-specific "CORS" code with XDR
document.write("CORS supported (XDR)");
}else{
//Time to retreat with a fallback or polyfill
document.write("No CORS Support!");
}
Vous pouvez essayez ce test en direct en utilisant JSBin et voir la réponse appropriée dans IE, Firefox, Chrome, Safari, et Opera.
Il y a quelques cas limites dans les environnements non-browser que soutenir XHR inter-domaines mais pas XHR2/CORS. Ce test ne tient pas compte de ces situations.