0

Как проверить, поддерживает ли браузер собственный объект XMLHttpRequest JavaScript с помощью CORS? Я тестирую в IE 8, который, как я понял, только поддерживает XDomainRequest, однако, выполнив следующие действия в IE 8:Обнаружение, если браузер не поддерживает XMLHttpRequest с полной поддержкой CORS

typeof window.XMLHttpRequest 
"object" 

я бы подумал, что было бы undefined. В принципе, как я могу определить, поддерживает ли браузер полный XMLHttpRequest с поддержкой CORS?

Должен ли я сделать инверсию?

if(type window.XDomainRequest === 'object') { 
    // Assume the browser does not support XMLHttpRequest with CORS 
} 

ответ

1

Я использую это, 1 означает XMLHttpRequest CORS поддержки, 2 означает CORS поддерживается с помощью XDomainRequest, 0 означает, что не поддерживают ни одного CORS

var corsSupportLevel = null;  
function supportsCorsInternal() { 

       if (corsSupportLevel !== null) return corsSupportLevel; 

       var xhr = new XMLHttpRequest(); 
       if (typeof xhr.withCredentials !== 'undefined') { 
        // Supports CORS 
        corsSupportLevel = 1; 
       } else if (typeof XDomainRequest !== "undefined") { 
        // IE 
        corsSupportLevel = 2; 
       } else { 
        corsSupportLevel = 0; 
       } 
       return corsSupportLevel; 
      }