[removed] How to tell whether AJAX response is JSON

后端 未结 5 1715
佛祖请我去吃肉
佛祖请我去吃肉 2020-12-29 02:22

I\'ve got an AJAX request that expects JSON in response.

But there\'s a possibility that what gets returns may not be JSON, but rather an HTML error page (unfortunat

5条回答
  •  粉色の甜心
    2020-12-29 03:05

    Well, if you are using jQuery and you specify the dataType property of the $.ajax() call to json then jQuery will try to parse the JSON, and if it isn't JSON should call the error() callback.

    $.ajax({
        url: '/my/script.ext',
        dataType: 'json',
        success: function(data, textStatus, jqXHR) { /*YAYE!!*/ },
        error: function(jqXHR, textStatus, errorThrown) { /*AWWW... JSON parse error*/ }
    });
    

    EDIT

    For anyone not using jQuery that lands here, the basic idea is to try and parse it as json and catch the error:

    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).
    

提交回复
热议问题