我正在编写ajax
对 RESTful 服务器的 jQuery 调用,对有效 PUT 请求的响应是 HTTP 204 No Content。响应有一个Content Type
标题,application/text
但没有内容正文。因此,该ajax
调用似乎将 this 视为错误,因此error
调用该函数而不是done
.
有没有办法覆盖这种行为,并执行done
204 响应而不管内容正文如何?
我正在编写ajax
对 RESTful 服务器的 jQuery 调用,对有效 PUT 请求的响应是 HTTP 204 No Content。响应有一个Content Type
标题,application/text
但没有内容正文。因此,该ajax
调用似乎将 this 视为错误,因此error
调用该函数而不是done
.
有没有办法覆盖这种行为,并执行done
204 响应而不管内容正文如何?
我终于设法通过向ajax 请求设置添加过滤器来解决问题
dataFilter: function(data,type) {
return data || "{}"
}
这确保了JSON.parse
在响应内容的 ajax 中调用它时永远不会收到空内容。
最好的方法是拨打statusCode
in ajax
。并在特定的statusCode
.
new Promise((resolve, reject) => {
var settings = {
"URL": "<your link>",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "application/json"
},
"data": JSON.stringify({
"email": email,
"user_name": user_name,
}),
"statusCode": {
200: function (data) {
console.log("Request completed 200");
resolve(data || {statusCode: 200});
},
201: function (data) {
console.log("Request completed 201");
resolve(data || {statusCode: 201});
},
204: function (data) {
console.log("Request completed 204");
resolve(data || { statusCode: 204});
}
}
};
$.ajax(settings)
});