Ajax 오류의 원인: 1. 잘못된 데이터 유형 유형, 2. 잘못된 json 형식, 3. 비동기 요청의 동기 및 비동기 설정에 문제가 있습니다. 4. 데이터 매개변수 값이 설정되지 않았습니다. 6. URL 경로에 한자 등이 있습니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, jquery 버전 1.10.2, Dell G3 컴퓨터.
표준 jquery ajax 코드:
$.ajax({ type: 'POST', url: 'getSecondClassification', data: {"sort2": sort2,"sort3":sort3)}, dataType: 'json', //contentType:"utf-8",发送请求的编码方式 //contentType都是默认的值:application/x-www-form-urlencoded contentType: 'application/json', data: JSON.stringify({a: [{b:1, a:1}]}) success: function (sort) { $("#noneSelect").remove(); var optionstring = ""; for (var i in sort) { optionstring += "<option value=\"" + sort[i].classId + "\" >" + sort[i].className + "</option>"; } $("#secondtype").html(optionstring); $("#build").removeAttr("disabled"); }, error: function (XMLHttpRequest, textStatus, errorThrown) { // $("#p_test").innerHTML = "there is something wrong!"; // alert(XMLHttpRequest.status); // alert(XMLHttpRequest.readyState); // alert(textStatus); } });
모든 오류는 오류 함수로 이동합니다.
일부 오류 이유의 예:
1. 데이터 유형 오류: 배경 반환된 경우 dataType 유형이 프런트엔드에 작성된 것과 일치하지 않으면 오류가 형식 오류로 이동합니다. jquery1.4에는 json에 대한 형식 요구 사항이 매우 엄격하며 json 형식 오류도 {"test":1} 오류로 이동합니다. 형식에 주의하세요
때로는 값을 반환할 필요가 없는 경우 템플릿 형식을 사용하고 dataType: "json" 매개변수가 설정됩니다. 이때 ajax 값이 올바르게 전송되면 특별한 상황이 발생합니다. 200 반환 성공 상태에서 오류가 보고되는 경우에 발생합니다.
2. 비동기 요청 동기화 및 비동기 문제
비동기는 하나의 Ajax가 실행된 후 다른 Ajax를 실행하려면 async=false를 설정해야 합니다. post 요청을 사용하여 다른 페이지의 백그라운드로 값을 전달했지만 페이지가 로드되자마자 이미 ajax가 실행되었습니다. 이때는 백그라운드에서만 값 수신이 완료되므로 데이터를 요청할 수 없습니다. ajax 요청을 동기식 try로 변경하는 것을 고려할 수 있습니다.
3. 데이터를 작성해야 합니다
데이터가 비어 있으면 "{}"를 전달해야 합니다. 그렇지 않으면 반환되는 데이터는 xml 형식이 됩니다. 그리고parsererror.data:"{}" 메시지가 표시됩니다.parsererror의 예외는 헤더 유형과도 관련이 있습니다. 및 인코딩 헤더('Content-type: text/html;
charset=utf8
');4. 전달된 매개변수 는
ajax5에서 지원하는 인코딩 형식이어야 합니다. 경로에 중국어 문자를 사용할 수 없습니다.
오류를 사용하여 오류 메시지를 디버그하세요.
무엇이 잘못되었는지 경고할 수 있습니다.특정 매개변수:
XMLHttpRequest:XMLHttpRequest.readyState: 状态码的意思 0 - (未初始化)还没有调用send()方法 1 - (载入)已调用send()方法,正在发送请求 2 - (载入完成)send()方法执行完成,已经接收到全部响应内容 3 - (交互)正在解析响应内容 4 - (完成)响应内容解析完成,可以在客户端调用了XMLHttpRequest: XMLHttpRequest.status:textStatus: 오류 이유 errorThrown: (선택 사항) 캡처된 오류 개체[관련 튜토리얼 권장 사항:
AJAX 비디오 튜토리얼
]위 내용은 아약스 오류의 원인은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!