没有响应主体的成功响应头是否会导致AJAX请求出错?

时间:2014-04-12 23:06:14

标签: jquery ajax http-headers httpresponse

使用AJAX检查服务器连接


我正在尝试使用简单的客户端AJAX帖子来检查服务器是否已启动,然后再继续执行功能。我不想发送任何数据,因此我尝试使用成功标头响应客户端并省略正文,但这导致客户端触发错误处理程序,即使服务器响应。


这是服务器端代码段,用于处理要在我的侦听器中“检查”的帖子:

app.post('/check', function (req, res) {

        console.log("Client checking for service...");

        res.writeHead(200, {
            'Access-Control-Allow-Origin': 'http://localhost',
            'Content-Length': 0,
            'Content-Type': 'text/plain'
        });
        res.end();
        console.log("Client checked in!");

    });

这是AJAX请求:

request = $.ajax({
    url: "http://127.0.0.1:8080/check",
    type: "POST",
    crossDomain: true,
    data: '',
    dataType: "json",

    error: function () {
        alert("Could not connect to the server! Returning to login screen.");
        signOut();
    },
    success: function () {

        DoStuff();

    }
});

发送没有响应正文的成功响应标头会导致AJAX请求出错吗?

1 个答案:

答案 0 :(得分:0)

注意未尝试node.jsnode.js件无法解决

编辑

见原帖

服务器端(response

 'Content-Type': 'text/plain'

js(request

dataType: "json"

可能触发error处理程序?

注意

server-side responseContent-Type似乎设为text/plain$.ajax() settings为期望json({{1}响应?也许为什么application/json回调调用每个实例?如果可以a)将预期响应设置为error,b)text/plaincallback回调中的链error(),当fail()content-type时会调用})返回,c)更改json内容类型设置(ieg,到server-side),为json生成并替换application/json响应?

试试这个(模式)

html

text/plain

js(已更新)

<p id="results"></p>
<button>localpost</button>

jsfiddle http://jsfiddle.net/guest271314/Cer4G/