문제

나는 Firefox 3.5의 크로스 도메인 XMLHTTPrequests를 수행하는 능력을 사용하는 JavaScript를 연구하고 있습니다. 그러나 지원되지 않으면 우아하게 실패하고 싶습니다.

실제로 크로스 도메인 요청을하는 것 외에도 브라우저의 지원을 감지 할 수있는 방법이 있습니까?

도움이 되었습니까?

해결책

향후 참조를 위해 Full CORS 기능 탐지는 다음과 같습니다.

//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!");
}

당신은 할 수 있습니다 JSBIN을 사용 하여이 테스트를 실시간으로 사용해보십시오 IE, Firefox, Chrome, Safari 및 Opera의 적절한 응답을보십시오.

브라우저가 아닌 환경에는 몇 가지 에지 사례가 있습니다 지원하십시오 크로스 도메인 XHR이지만 XHR2/CORS는 아닙니다. 이 테스트는 그러한 상황을 설명하지 않습니다.

다른 팁

에 따르면 http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/ 사용할 수 있어야합니다.

if ('withCredentials' in new XMLHttpRequest()) {
    /* supports cross-domain requests */
}

(참고 :이 페이지에 Chrome 2 가이 테스트에 실패한다는 의견이 있습니다.

브라우저가 지원할 수 있기 때문에 크로스 도메인 API 대상 서버가 요청이 완료되도록 허용한다는 의미는 아닙니다.

당신은보고 싶을 수도 있습니다 EasyXDM, 크로스 브라우저 퀴크를 감싸고 해당 브라우저에 가장 적합한 메커니즘을 사용하여 다른 도메인 간의 클라이언트 스크립트에서 통신하기 쉬운 API를 제공합니다 (예 : 사후 관리 사용 가능한 경우 다른 메커니즘이 아닌 경우).

분명히 라이브러리가 브라우저 용량 탐지 문제를 해결 했으므로 경험을 통해 혜택을 볼 수 있습니다. :-)

IE8도 있습니다 xdomainrequest RSS를 텍스트로 검색하는 데 사용할 수있는 객체는 나중에 DOM으로 구문 분석 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top