[英]Does an AJAX call with jQuery have to return data?
在我的小服务器上,我有一个称为/ assign的POST方法。 它采用一些形式参数,仅在成功时返回200即可,在出现问题时返回其他错误代码-不含json,html或文本或其他任何内容。
我使用jQuery编写了ajax调用。 看起来像这样:
var formData={};
formData["vm-name"]=$("input#vm-name").val();
formData["vm-address"]=$("input#vm-address").val();
$.ajax({
url: "/api/redirects",
type: "POST",
data: formData,
success: function(){
window.location.href="/current";
},
error: function(data, textStatus, jqXHR){
permitSubmission();
errorMessage(["Network error. Try again."])
}
});
在我的服务器上,数据被接受,该方法执行,并返回200。在Chrome中,网络检查器将请求显示为返回200代码。 但是,总是调用错误函数。 textStatus变量类似于“ parseerror”。 一些谷歌搜索建议这是由于无法解析返回的数据(这很有意义,因为没有返回的内容)。
那么,有没有办法忽略内容的缺乏呢?
编辑:我希望能够没有返回内容,不修改服务器,使其返回JSON或其他内容。
用jQuery进行AJAX调用是否必须返回数据?
是的,但是,请考虑缺少数据也是数据。 如果您的服务器正在返回application/json
内容类型,则返回的数据必须与该内容类型匹配。 有效缺乏application/json
数据的示例是{}
, []
或null
,而不是空字符串。 因此,如果当前contentType为application / json,则必须返回上述三种类型之一,或者将contentType更改为可以为空字符串的其他内容,例如text/plain
。
您可以尝试定义请求应返回的数据类型:
$.ajax({
url: "/api/redirects",
type: "POST",
data: formData,
dataType: "text",
success: function(){
window.location.href="/current";
},
error: function(data, textStatus, jqXHR){
permitSubmission();
errorMessage(["Network error. Try again."])
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.