Ajax 의 네 이 티 브 구현 MIME 유형 에 대한 사용법
아래 의 예 는 Ajax 의 post 요청 코드 입 니 다.이 코드 는 테스트 가 실 행 될 때 되 돌아 오 는 상태 코드 가 400 이 고 서버 가 이해 할 수 없 는 요청 을 발 견 했 습 니 다.나중에 보기 와 수정 을 통 해 아래 코드 를 조금 만 개조 하면 됩 니 다.
원 코드
var send = function (url, params, fn) {
var me = this;
var xhr = null;
var data = '';
fn = fn || function() {};
params = params || {};
for(var item in params) {
data += item + '=' + params[item] + '&';
}
if(data[data.length - 1] == '&') {
data = data.slice(0, data.length - 1);
}
if(window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}else if(window.ActiveXObject) {
xhr= new ActiveXObject("Microsoft.XMLHTTP");
}
xhr.open("post", url, true);
xhr.setRequestHeader("Content-type", "application/json");
xhr.onreadystatechange = function () {
if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 304)) {
fn(JSON.parse(xhr.responseText));
}
};
xhr.send(JSON.stringify(params));
}
수 정 된 코드
var send = function (url, params, fn) {
var me = this;
var xhr = null;
fn = fn || function() {};
params = params || {};
if(window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}else if(window.ActiveXObject) {
xhr= new ActiveXObject("Microsoft.XMLHTTP");
}
xhr.open("post", url, true);
xhr.setRequestHeader("Content-type", "application/json");
xhr.onreadystatechange = function () {
if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 304)) {
fn(JSON.parse(xhr.responseText));
}
};
xhr.send(JSON.stringify(params));
}
이 두 단락 코드 의 차 이 는 수 정 된 코드 가 data 라 는 변수 에 대한 처리 와 send 에서 전달 하 는 매개 변 수 를 params 라 는 변수 로 바 꾸 는 것 이다.문제 해결
문 제 는 해결 되 었 지만 제 마음속 의 의문 이 생 겼 습 니 다.예전 에 원생 의 Ajax 를 사 용 했 을 때 method 가 post 였 을 때 전달 하 는 매개 변수의 형식 은'name=123&age=32'였 습 니 다.그런데 왜 지금 은 서열 화 된 JSON 대상 을 전달 하면 되 는 겁 니까?
이때 저 는 제 가 추가 한 MIME 유형,즉 Content-type 을 설정 한 곳 을 알 게 되 었 습 니 다.제 가 설정 한 것 은'application/json'입 니 다.그러면 설명 이 통 하 는 것 같 습 니 다.이때 저 는 예전 에 자주 사용 하 던 MIME 유형 이'application/x-ww-form-urlencoded'라 는 것 을 생각 했 습 니 다.이 럴 때 send 방법 으로 전달 하 는 인 자 는'name=123&age=32'라 는 것 을 구 해 야 합 니 다.여기까지.해 혹 됐 습 니 다~
보충 하 다
참고 로 405 이 상태 코드 를 말씀 드 리 겠 습 니 다.지난번 에 만 났 을 때 제 전단 에서 요청 을 보 냈 을 때 전달 하 는 매개 변수 가 잘못 되 었 습 니 다.이번에 만 났 을 때 배경 에 이 요청 을 추가 하지 않 았 기 때 문 입 니 다.
이상 의 이 Ajax 의 네 이 티 브 구현 MIME 유형 에 대한 사용법 은 바로 편집장 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.여러분 에 게 참고 가 될 수 있 도록 많은 응원 부 탁 드 리 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JavaScript 원본 배열 함수 인스턴스 요약그리고forEach의 매개 변수는 유사합니다.value, index,array 세 개의 매개 변수를 포함하는 리셋 함수와 선택할 수 있는 두 번째 상하문 매개 변수가 필요합니다.DN 맞습니다.some의 설명은 다음과...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.