JS/jQuery가 HTTP 요청 요청 헤더를 얻습니까?
xhr 개체에서 getAllResponseHeaders를 사용하면 ajax 호출 후에 모든 응답 헤더를 가져올 수 있습니다.그런데 요청 헤더 문자열을 받을 방법을 찾을 수가 없는데 가능한가요?
디버깅 목적인 경우 Firebug 또는 Chrome Developer Tools(및 IE에서 호출하는 기능)를 사용하여 브라우저에서 서버로의 네트워크 트래픽을 검사할 수 있습니다.
다른 방법으로는 다음과 같은 스크립트를 사용하는 것이 있습니다.
$.ajax({
url: 'someurl',
headers:{'foo':'bar'},
complete: function() {
alert(this.headers.foo);
}
});
그러나 이미 정의된 머리글만headers
를 사용할 수 있습니다(헤더가 변경되면 어떻게 되는지 확실하지 않습니다(예: Send 전에).
jQuery ajax에 대해서는 http://api.jquery.com/jQuery.ajax/ 에서 좀 더 자세히 읽을 수 있습니다.
편집: setRequest를 설정할 모든 호출에서 헤더만 잡으려면XMLHttpRequest에서 헤더를 사용하면 해당 메서드를 래핑할 수 있습니다.이것은 약간의 해킹이며 물론 요청이 발생하기 전에 아래 기능 래핑 코드가 실행되는지 확인해야 합니다.
// Reasign the existing setRequestHeader function to
// something else on the XMLHtttpRequest class
XMLHttpRequest.prototype.wrappedSetRequestHeader =
XMLHttpRequest.prototype.setRequestHeader;
// Override the existing setRequestHeader function so that it stores the headers
XMLHttpRequest.prototype.setRequestHeader = function(header, value) {
// Call the wrappedSetRequestHeader function first
// so we get exceptions if we are in an erronous state etc.
this.wrappedSetRequestHeader(header, value);
// Create a headers map if it does not exist
if(!this.headers) {
this.headers = {};
}
// Create a list for the header that if it does not exist
if(!this.headers[header]) {
this.headers[header] = [];
}
// Add the value to the header
this.headers[header].push(value);
}
일단 머리글이 설정되면XMLHttpRequest
예를 들어, 우리는 그들을 조사함으로써 꺼낼 수 있습니다.xhr.headers
예.
var xhr = new XMLHttpRequest();
xhr.open('get', 'demo.cgi');
xhr.setRequestHeader('foo','bar');
alert(xhr.headers['foo'][0]); // gives an alert with 'bar'
Sinon의 FakeXMLHtpRequest를 사용하여 브라우저의 XHR을 대체할 수 있습니다.테스트에 사용하는 방법에 대해서는 이 문서에 설명되어 있지만 디버깅 목적으로 모듈을 사용할 수 있다고 확신합니다.
당신이 해야 할 일은 다음과 같습니다.
var requests;
this.xhr = sinon.useFakeXMLHttpRequest();
this.xhr.onCreate = function(xhr) {
requests.push(xhr);
}
그리고 나중에 확인할 수 있습니다.requests
머리글 배열 기준:
console.log(requests[0].requestHeaders);
요청 헤더에 액세스합니다.
언급URL : https://stackoverflow.com/questions/10515862/js-jquery-get-httprequest-request-headers
'programing' 카테고리의 다른 글
.c 파일에서 #ifdef를 피해야 하는 이유는 무엇입니까? (0) | 2023.09.23 |
---|---|
Docker MYSQL '[2002] 연결 거부' (0) | 2023.09.23 |
Oracle driver를 통해 Nodejs로 원격 Oracle DB에 연결 (0) | 2023.09.23 |
Java에서 문자열 XML 조각을 문서 노드로 변환 (0) | 2023.09.23 |
copy-item With Alternate Credentials (0) | 2023.09.18 |