Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax调用承诺没有得到解决_Javascript_Jquery_Json_Ajax_Debugging - Fatal编程技术网

Javascript Ajax调用承诺没有得到解决

Javascript Ajax调用承诺没有得到解决,javascript,jquery,json,ajax,debugging,Javascript,Jquery,Json,Ajax,Debugging,我正在javascript代码中对RESTAPI进行AJAX调用。该调用基本上获取一个JSON文件。AJAX调用如下所示: $.ajax(ajaxObj).then(function(response) {}).catch(function(err) {}); 因此,网络监视器显示此调用的状态200,但JSON响应显示以下错误: SyntaxError:JSON.parse:JSON数据的第x行和第y列的字符串文字中的错误控制字符 基本上,响应是无效的JSON。使用debugger我注意到,尽

我正在javascript代码中对RESTAPI进行AJAX调用。该调用基本上获取一个JSON文件。AJAX调用如下所示:

$.ajax(ajaxObj).then(function(response) {}).catch(function(err) {});
因此,网络监视器显示此调用的状态200,但JSON响应显示以下错误:

SyntaxError:JSON.parse:JSON数据的第x行和第y列的字符串文字中的错误控制字符


基本上,响应是无效的JSON。使用
debugger
我注意到,尽管状态为200,但控件从未进入
then()
块,因此控件将进入catch块。为什么会这样?我如何解决它?

假设您需要一个带有
ajaxObj
的JSON字符串,并且错误表明您的JSON语法有错误,您应该检查返回的JSON是否正确解析。您的服务器可以返回200个代码,但仍然返回正文中的无效JSON


不确定,但这可能会有所帮助:粘贴返回的JSON。

您的JSON数据似乎格式错误。检查JSON响应中字符串中间是否有cariage返回或其他无效字符


(可能与)

假设ajax调用返回无效的JSON,控件将不会进入then()块。要处理错误,必须使用done()和fail()方法


在错误中,您可以解决承诺。希望能有所帮助。

您能展示ajax调用的代码吗?ajax调用正在进行中,我的状态为200 OK,并得到响应。所以我猜ajax调用没有什么问题。是的,它返回了一个无效的JSON。因此,ajax承诺没有得到解决,因为JSON响应无效。这是否意味着,除非JSON文件在API中被修改,否则我对此无能为力?如果您没有权限修改API响应,那么答案是否定的。有一种“黑客方法”,但我不推荐它,也不确定它是否真的有效。也就是说,尝试以其他方式捕获响应,并自己解析它。但如前所述,这是一种非常糟糕的做法,除非你真的必须这样做,并且只有在这是一个具体案例的情况下才尝试这样做。
    $.ajax("url").done(() => { 
      //success
    }).fail(() => { 
      //error
    })