$.getJ가 되는 이유SON은 소리 없이 실패합니까?
반환된 데이터가 유효한 JSON이 아닐 때 jQuery가 자동으로 실패하는 것은 매우 불편한 것 같습니다.왜 이것이 사일런트 에러와 함께 실장되었습니까?getJ를 실행하는 가장 쉬운 방법은 무엇입니까?보다 나은 장애 동작을 가진 SON(예: 예외 발생,console.log(), or other other)?
사용할 수 있습니다.
function name() {
$.getJSON("", function(d) {
alert("success");
}).done(function(d) {
alert("done");
}).fail(function(d) {
alert("error");
}).always(function(d) {
alert("complete");
});
}
에러의 원인을 확인하려면 , 풀 버전을 사용합니다.
function name() {
$.getJSON("", function(d) {
alert("success");
}).fail( function(d, textStatus, error) {
console.error("getJSON failed, status: " + textStatus + ", error: "+error)
});
}
JSON의 형식이 적절하지 않으면 다음과 같은 것을 볼 수 있습니다.
getJSON failed, status: parsererror, error: SyntaxError: JSON Parse error: Unrecognized token '/'
URL이 틀리면 다음과 같은 메시지가 나타납니다.
getJSON failed, status: error, error: Not Found
Same-origin 정책을 위반하여 다른 도메인에서 JSON을 가져오려고 하면 이 접근법은 빈 메시지를 반환합니다.JSONP(제한 사항이 있음) 또는 선호하는 CORS(Cross-Origin Resource Sharing) 방법을 사용하여 동일한 원본 정책을 처리할 수 있습니다.
매뉴얼에서 직접:
중요:jQuery 1.4에서는 JSON 파일에 구문 오류가 있는 경우 요청이 자동으로 실패합니다.
문서 페이지에 기재되어 있듯이 getJSON은 단순한 줄임말입니다.
$.ajax({
url: url,
dataType: 'json',
data: data,
success: callback
});
장애 동작을 얻으려면 다음과 같이 $.ajax를 사용합니다.
$.ajax({
url: url,
dataType: 'json',
data: data,
success: callback,
error: another callback
});
대신 를 사용하여dataType옵션을 "json"으로 지정합니다.매뉴얼에서 다음 항목을 참조하십시오.
"json": 응답을 JSON으로 평가하고 JavaScript 개체를 반환합니다.jQuery 1.4에서는 JSON 데이터는 엄밀한 방법으로 해석됩니다.부정한 형식의 JSON은 거부되고 해석 오류가 발생합니다(올바른 JSON 포맷에 대한 자세한 내용은 json.org 참조).
이 API의 문서를 참조해 주십시오..오류가 있습니다.
http://api.jquery.com/jQuery.getJSON/
응답으로서 JSONP 를 요구하고 있는 경우는, 응답이 없는 경우(네트워크의 정지등) 사일런트 에러가 발생합니다.자세한 내용은 이 스레드를 참조하십시오.
언급URL : https://stackoverflow.com/questions/5492838/why-does-getjson-silently-fail
'programing' 카테고리의 다른 글
| Angular ng-repeat에서 다음 2개 항목마다 행 만들기 - 이온 그리드 (0) | 2023.03.15 |
|---|---|
| Angular 전체 목록JS 디렉티브? (0) | 2023.03.15 |
| 플럭스 대신 Redux를 사용하면 어떤 단점이 있을 수 있습니까? (0) | 2023.03.15 |
| XMLHttpRequest에서 빈 응답 텍스트 (0) | 2023.03.15 |
| "문의 양식 7" 양식에 ID 추가 (0) | 2023.03.15 |