jquery getResponseHeader는 항상 '정의되지 않음'을 반환합니까?
저는 ajax를 통해 제출하는 양식이 있습니다.저는 jquery form plugin을 사용하고 있습니다.제가 하려는 것은 서버에서 반환되는 '위치' 헤더를 가져오는 것입니다.불벌레에서 볼 수 있습니다.하지만 성공 콜백에서 getResponseHeader() 함수를 호출할 때마다 항상 '정의되지 않음'이 반환됩니다.
코드:
form.ajaxForm({
dataType: 'xml',
data: {format: 'xml'},
resetForm: true,
success: function(xml,status,xhr){
var location = xhr.getResponseHeader('Location');
alert(location);
});
위치가 정의되지 않았습니다.하지만 파이어버그에서 '위치' 헤더가 보입니다.제가 무엇을 빠뜨리고 있나요?xhr 개체에서 getAllResponseHeaders()를 호출해도 '정의되지 않음'을 반환합니다.
CORS 요청인 경우 디버그 도구(예: Chrome->Inspect Element->Network)에서 모든 헤더를 볼 수 있지만 xHR 개체는 다음을 통해서만 헤더를 검색합니다.xhr.getResponseHeader('Header')
) 이러한 헤더가 단순 응답 헤더일 경우:
Content-Type
Last-modified
Content-Language
Cache-Control
Expires
Pragma
이 집합이 아닌 경우, 서버가 반환하는 Access-Control-Exposure-Headers 헤더에 존재해야 합니다.
문제가 된 케이스와 관련하여, CORS 요청일 경우, 해당 케이스를 회수할 수 있을 뿐입니다.Location
머리끝으로 보다.XMLHttpRequest
object(객체)는 아래 헤더가 존재하는 경우에만 해당합니다.
Access-Control-Expose-Headers: Location
CORS 요청이 아니라면,XMLHttpRequest
검색하는 데 문제가 없을 겁니다
XMLHttpRequest가 투명하게 리디렉션 뒤에 따르므로 최종 요청에는 헤더가 없습니다. 이미 해당 리디렉션이 뒤따르고 해당 요청의 응답 헤더가 표시됩니다(초기 요청에는 해당됨).Location
머리글).
Location 헤더가 있는 201개의 "created"를 새 객체와 빈 본체로 되돌리는 레일/휴식 방법을 사용하여 비슷한 작업을 수행하고 있습니다.jQuery의 아약스 메소드는 json을 기대했지만 아무것도 돌려받지 못했기 때문에 이 문제가 발생했을 때 "parse error"를 던집니다.오류 콜백에서 201 방향 전환을 포착하면 다음과 같습니다.
function request_error(req, textStatus, errorThrown)
{
if (req.status == 201 ) {
var created_loc = req.getResponseHeader('Location');
console.log('(201) created: ' + created_loc);
// ... manual redirect here i.e. issue another ajax request to created_loc
return;
}
// ... handle an actual error here
}
이것이 도움이 되기를 바랍니다!
언급URL : https://stackoverflow.com/questions/4369987/jquery-getresponseheader-always-returns-undefined
'source' 카테고리의 다른 글
제출 버튼을 사용하지 않고 표준 HTML 유효성 검사(양식)를 트리거하시겠습니까? (0) | 2023.10.18 |
---|---|
각도를 개선하는 방법많은 수의 DOM 요소를 포함한 JS 성능 (0) | 2023.10.18 |
Spring Web MVC에서 Ajax JQuery를 사용하는 방법 (0) | 2023.10.18 |
MySQL DB에서 고객 정보를 암호화하는 가장 좋은 방법은? (0) | 2023.10.18 |
늘 레코드를 포함하는 왼쪽 조인 (0) | 2023.10.18 |