繁体   English   中英

用jQuery进行AJAX调用是否必须返回数据?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM