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

时间:2014-01-08 19:15:54

标签: javascript jquery ajax

在我的小服务器上,我有一个名为/ 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或其他内容。

2 个答案:

答案 0 :(得分:1)

  

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

是的,但是,考虑到缺乏数据也是数据。如果您的服务器返回application/json内容类型,则返回的数据必须与该内容类型匹配。 application/json的有效缺少数据的示例包括{}[]null,而不是空字符串。因此,如果当前contentType是application / json,则必须返回上述三个中的一个,或者将contentType更改为可以为空字符串的其他内容,例如text/plain

答案 1 :(得分:0)

您可以尝试定义请求应返回的数据类型:

$.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."])
}
});