2010-11-24 7 views
3

응답 텍스트가없는 응답 텍스트에 2048 및 응답 헤더 TotalNearby을 사용하는 XMLHttpRequest를 ExtJS를 사용하여 만들고 있습니다. 호출은 Firefox를 사용하여 완벽하게 작동하지만 Internet Explorer 8에서는 두 경고 상자가 모두 비어 있습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?XMLHttpRequest 응답이 Internet Explorer에 헤더가 없음

Ext.Ajax.request({ 
    url: 'services/getNearby', 
    method: 'GET', 
    params: { 
     'lat': 34, 
     'lon': -90 
    }, 
    headers: { 
     'Authorization': AUTH_TOKEN 
    }, 
    success: function(response) { 
     if (response.status == 204) { 
      alert(response.getAllResponseHeaders()); 
      alert(response.getResponseHeader('Total-Nearby')); 
     } 
    }, 
    failure: function(response) { 
     alert('Server status ' + response.status); 
    } 
}); 

답변

5

사이트 http://www.enhanceie.com/ie/bugs.asp에 따르면 이것은 IE 7/8 버그 :

IE0013 : IE의 XMLHTTP 구현 가짜 1,223 상태 코드

로 204 응답 코드를 회전 여기 을 설명하면 http://dev.jquery.com/ticket/1450, IE의 XMLHTTPRequest 객체는 1223의 상태 코드를 반환하고 모두 의 응답 헤더를 반환합니다. 서버 이 HTTP/204 No Content 응답을 반환하는 경우.

이것은 URLMON의 내부 설계 이슈 (결합 복귀 동작 중단됨 (1223)는 요청에 응답하여 서버 복귀 경우 콘텐츠 없음)에 의해 발생된다.

IE8, IE7 (아마도 일 것임)에있는 Repros.

해결 방법 : "1223"은 을 204로 처리하십시오. 참고 : HTTP 헤더는이 경우에는 을 사용할 수 없습니다.

IE가 상태 코드를 1223으로 변경하지 않았 음을 의미하는 빈 경고가 표시되면 버그의 해당 부분이 수정되었을 수 있습니다. 그러나 진술에 대해 더 걱정할 것입니다.

참고 :이 경우 HTTP 헤더를 사용할 수 없습니다.

이것은 직면 한 문제로 보입니다. 콘텐츠로 응답하지 않는 서비스를 사용해야합니까? 메시지 본문에 대한 일반적인 응답을 반환하는 것이 더 적합 할 수 있습니다.

+0

운 좋게도 서비스를 변경할 수 있습니다. 감사! – originalbryan

관련 문제