【发布时间】:2016-10-27 08:41:23
【问题描述】:
我使用 API Rest。我想用AJAX and JQuery 创建一个资源。我的资源创建正确,但调用了错误回调。
我的代码是:
$.ajax({
url: "/api/skills.json",
data: JSON.stringify(skill),
method: "POST",
contentType: "application/json",
statusCode: {
201: function (data) {
console.log("201");
}
},
success: function (data) {
console.log("success");
},
error: function (data) {
console.log("error");
},
complete: function (data) {
console.log("complete");
}
});
Firefox 控制台的“网络”结果:
HTTP/1.1 201 Created
Date: Thu, 27 Oct 2016 08:29:08 GMT
Server: Apache
X-Powered-By: PHP/7.0.8
Cache-Control: no-cache
Location: http://localhost/api/skills/pdak12ada64d
Allow: POST
Content-Length: 0
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: application/json
来自控制台的结果:
"201"
"error"
"complete"
为什么 JQuery 用 201 状态调用错误的回调?
我尝试使用快捷方式$.post,结果相同,我不使用快捷方式,因为我使用自定义标题。
【问题讨论】:
-
在另一个问题上,有一个答案表明数据类型必须是
text,以便在响应为空时调用success- stackoverflow.com/questions/2233553/…