Javascript:AJAX 응답이 JSON인지 확인하는 방법
JSON이 응답하기를 바라는 AJAX 요청이 있습니다.
그러나 반환되는 것은 JSON이 아니라 HTML 오류 페이지(불행하게도 응답 타입 200)일 가능성이 있습니다.
응답이 JSON인지 아닌지는 어떻게 알 수 있습니까?
(필요하다면 jQuery를 사용하고 있습니다.단, 플러그인은 사용할 수 없습니다.)
jQuery를 사용하는 경우,dataType
호출의 특성json
그러면 jQuery가 JSON을 해석하려고 합니다.JSON이 아닌 경우,error()
콜백
$.ajax({
url: '/my/script.ext',
dataType: 'json',
success: function(data, textStatus, jqXHR) { /*YAYE!!*/ },
error: function(jqXHR, textStatus, errorThrown) { /*AWWW... JSON parse error*/ }
});
편집
여기에 있는 jQuery를 사용하지 않는 사용자는 기본적으로 json으로 해석하여 오류를 파악해야 합니다.
var data = 'some_data';
try {
data = JSON.parse(data);
} catch(e) {
//JSON parse error, this is not json (or JSON isn't in your browser)
}
//act here on the the parsed object in `data` (so it was json).
jQuery는 dataType을 자동으로 검출합니다.
응답이 JSON인 경우 정상적으로 동작하는 어플리케이션으로 인해Content-Type
응용 프로그램/json으로 이동합니다.
따라서 서버가 정상적으로 동작하고 있는 경우, 응답의 Content-Type 헤더가 application/json으로 시작하는지 테스트하기만 하면 됩니다.
우연히도 jQuery는 이미 이 작업을 스스로 수행하고 있습니다.
$.get('/foo', function(data, status, xhr, dataType) {
if ('json' === dataType) {
// Yay that's JSON !
// Yay jQuery has already parsed `data`
}
});
jQuery는 dataType을 검출하여 콜백함수의 4번째 파라미터로 전달합니다.dataType이 JSON일 경우 JSON 문자열을 해석하고 콜백의 첫 번째 파라미터로 결과값을 해석합니다.
try catch를 사용하면 좋을 것 같습니다.
try {
$.parseJSON(input)
} catch(e) {
// not valid JSON
}
jQuery 구문 분석 J여기에는 SON 기능을 사용할 수 있습니다.그러면 예외가 발생하므로 계속 진행하십시오.
data = '{}';
try {
json = $.parseJSON(data);
} catch (e) {
// not json
}
try {
jQuery.parseJson(json_string_here);
} catch(e) {
... malformed json ...
}
언급URL : https://stackoverflow.com/questions/7288136/javascript-how-to-tell-whether-ajax-response-is-json
'source' 카테고리의 다른 글
모델에 부울 값을 할당하는 방법 (0) | 2023.03.18 |
---|---|
React.js에서의 버블링 및 캡처 예시 (0) | 2023.03.18 |
React에서 UseEffect() 내의 비동기 함수를 호출하려면 어떻게 해야 합니까? (0) | 2023.03.18 |
SPA SEO를 크롤 가능한 상태로 만드는 방법 (0) | 2023.03.18 |
스프링 부트 - 실행 중인 포트를 얻는 방법 (0) | 2023.03.18 |