2012-04-30 5 views
3

XDomainRequest onerror 처리기에 문제가 있습니다. 오류가 발생하면 HTTP 응답의 본문을 가져올 수없는 것 같습니다 (xdr.responseText 통해). 성공적인 요청 (200 OK)은 정상적으로 작동합니다. 여기 XDomainRequest - 오류시 응답 본문 받기

요청이다

POST http://localhost/path HTTP/1.1 
Accept: */* 
Origin: http://localhost 
Accept-Language: cs-CZ 
Accept-Encoding: gzip, deflate 
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) 
Host: localhost 
Content-Length: 34 
Connection: Keep-Alive 
Pragma: no-cache 

[Data] 

그리고 여기 반응이다 :

HTTP/1.1 400 Bad Request 
Content-Length: 54 
Content-Type: application/json; charset=utf-8 
Server: Microsoft-IIS/7.5 
Access-Control-Allow-Origin: * 
Date: Mon, 30 Apr 2012 20:57:32 GMT 

[Data] 

는 반응 체를 얻을 수있다?

답변

4

불행히도 오류시 응답 본문을 가져올 수 없습니다. 당신이 알 수있는 것은 오류가 발생했다는 것입니다. 내 관련 질문은 여기를 참조하십시오 : Is it possible to trap CORS errors?

가능한 해결 방법은 서버를 제어 할 경우 항상 HTTP 200을 반환하지만 응답 본문에 오류 코드를 포함시키는 것입니다.

+0

XmlHttpRequest를 사용하는 Chrome에서 어떻게 작동할까요? XDomainRequest의 제한 사항입니까, 아니면 Chrome 구현이 잘못 되었나요? –

+0

불행히도 지금은 Windows 상자에 액세스 할 수 없지만 Chrome이 실제로 본문을 반환하는지 확인할 수 있습니다. IE의 XDomainRequest는 Chrome의 XmlHttpRequest (레벨 2)와 다른 객체이므로 동작에 동의하지 않아도됩니다. IE10은 XmlHttpRequest 및 CORS를 지원합니다. – monsur

+0

Firefox는 Chrome과 동일하게 작동합니다. 나는 오류가 발생하더라도 여전히 대응할 수 있습니다. –