jQuery ajax - 即使运行成功,也会运行错误

时间:2017-01-17 11:52:53

标签: javascript jquery ajax

我有以下代码作为我的.ajax部分

success: function (data) {
    alert("success");
},
error: function(xhr, ajaxOptions, thrownError) {
    alert(xhr.status);
}

第一个警报永远不会运行,但使用以下内容正确提交数据:

data: JSON.stringify({ "solution": JSON.stringify(data) }),  // Data is HTML

事实上,第二个警报返回状态为200,而且谷歌Chrome控制台的所有内容都很好。

有什么想法吗?完整代码:

var request = jQuery.ajax({
    url: "/answers/"+content_id,
    type: "POST",
    data: JSON.stringify({ "solution": data }),
    dataType: "json",
    headers: {
        Authorization: 'Basic XXX',
        'X-HTTP-Method-Override': 'PATCH',
        'Content-Type': 'application/json'
    },
    success: function (data) {
        alert("success");
    },
    error: function(xhr, ajaxOptions, thrownError) {
         alert(xhr.status);
      }
});

2 个答案:

答案 0 :(得分:2)

$ .ajax函数需要JSON数据作为响应。如果响应不是JSON,则将调用错误回调。请查看您从服务器发送的内容。

答案 1 :(得分:0)

请测试一些事情:

  1. 设置type: "GET"而不是帖子。看看这个:GET OR POST

  2. 标题数据是字符串(名称/值),也许你的数据编码是utf8所以设置

    headers: {
    
       'Authorization': 'Basic XXX',  //high recommended
       'X-HTTP-Method-Override': 'PATCH',
       'Content-Type': "application/json; charset=utf-8"  //low
    },
    
  3. 测试另一个单词而不是数据以避免冲突:

    success: function (response)