XML HttpRequest 를 사용 하여 Ajax 요청 을 실행 합 니 다.

1756 단어 Ajax요청 헤더
어제 한 친구 가 나 에 게 한 가지 질문 을 했다.
네트워크 자원 을 찾 아 보면 서버 에서 Ajax 요청 과 일반 요청 을 식별 하 는 방법 을 발견 할 수 있 습 니 다.http 요청 헤더 의 X - Requested - With 값 을 통 해 구분 한 다 는 것 이 대부분 입 니 다.이렇게 해서 친 구 는 다음 코드 를 통 해 요청 을 실 행 했 지만 이 표지 정 보 를 찾 지 못 했다.
//         
var req = new XMLHttpRequest();
req.open('GET', 'http://www.baidu.com', true);
req.send();
firebug 를 통 해 감 청 된 요청 정보 에서 요청 헤더 에서 발견 되 지 않 았 습 니 다.
X - Requested - With 의 정보.
이 문 제 를 분석 하 다.
사실, 우 리 는 js 의 XML HttpRequest 를 통 해 기본 적 인 header 정 보 를 보 냈 습 니 다. 그러면 X - Requested - With 의 이 표지 위 치 는 스스로 설정 한 것 이 라 고 의심 합 니 다.
이어서 나 는 jquery 의 Ajax 를 통 해 요청 을 했 는데 이 플래그 가 존재 하 는 것 을 발견 했다.다음은 제 생각 을 증명 하기 위해 jquery 의 소스 코드 에 가서 Ajax 코드 를 살 펴 보고 그 중에서 우리 가 필요 로 하 는 정 보 를 찾 았 습 니 다. 즉,:
// X-Requested-With header
// For cross-domain requests, seeing as conditions for a preflight are
// akin to a jigsaw puzzle, we simply never set it to be sure.
// (it can always be set on a per-request basis or even using ajaxSetup)
// For same-domain requests, won't change header if already provided.
if ( !s.crossDomain && !headers["X-Requested-With"] ) {
	headers[ "X-Requested-With" ] = "XMLHttpRequest";
}
이렇게 해서 우리 의 생각 이 정확 하 다 는 것 을 증명 합 니 다. 그러면 우 리 는 어떻게 XML HttpRequest 요청 헤더 에 이 정 보 를 추가 합 니까?
아주 간단 합 니 다. 문 서 를 찾 아 보 니 우리 의 수 요 를 실현 할 수 있 습 니 다!
//         
var req = new XMLHttpRequest();
req.open('GET', 'http://www.baidu.com', true);
//         ,          
req.setRequestHeader('X-Requested-With','XMLHttpRequest');
req.send();

좋은 웹페이지 즐겨찾기