繁体   English   中英

为什么我的AJAX请求返回空?

[英]Why does my AJAX request return empty?

我已经看过的内容:

无法加载资源:net :: ERR_EMPTY_RESPONSE http://test.com

无法在Chrome下加载资源

控制台未打开时,无法加载资源:net :: ERR_EMPTY_RESPONSE

无法加载资源:net :: ERR_EMPTY_RESPONSE


错误:

无法加载资源:net :: ERR_EMPTY_RESPONSE


码:

客户

var load = 0;

    $( document ).ready(function() {
        if (load == 0) {
            load++;
            $.ajax({
                type: "POST",
                url: "/1/2",
                data: someData,
            }).done(function(response) {
                console.log("RESPONSE :"+response);
                if (response.charAt(0) == "F") {
                    localStorage.setItem("error_msg_local", response);
                } else if (response.charAt(0) == "L") {
                    localStorage.setItem("success_msg_local",response);
                } else {
                    localStorage.setItem("error_msg_local", "Internal error. Please try again.");
                }
            });
        }
    });

服务器

该请求与POST一起发送,将等待用户完成特定操作。 如果用户不执行任何操作,则在120秒后,将记录“否”,并且应发送“ F”作为响应。

router.post("/2", function(req, res, next){

        request.post({
            url: 'URL:Port',
            json: {  
              JsonData: JsonData,  
              timeout: "120000"  
            }
        },
        function (error, response, body) {
            if (!error && response.statusCode == 200) {
                if (body.status == "success") {
                    //User completed action within 120 seconds, so do stuff
                }
                else {
                    //120 elapsed without user completing action, body.status == "nothing", so execute this:
                    console.log("NO");
                    res.send("F");
                }
            }
            else {
                console.log("ERROR: "+error);
            }
        });
});

题:

我故意等待120秒来测试我的代码。 客户端上没有任何记录,但是服务器上没有记录“ NO”,因此我知道res.send(“ F”)应该已经作为响应发送了。

但是,我在浏览器控制台中收到“无法加载资源:net :: ERR_EMPTY_RESPONSE”错误消息,但没有任何反应。

这是在我的终端中注销的所有内容(服务器日志):

POST /1/2 - - ms - -
NO
POST /1/2 - - ms - -
NO

奇怪的是,尽管我只调用了一次,但似乎多次触发了该请求?

我什至添加了一个负载计数器,以确保它仅被调用一次,但是似乎它被调用了两次。

我应该怎样做才能只收到一个AJAX请求,并实际上从服务器获得正确的响应?

错误说明中有-空响应。 您的服务器接收并记录了该请求,但没有发送任何回信。 浏览器可能拒绝了诸如针对CORS的响应,但是在这种情况下,我希望会有不同的错误消息。

您还有其他测试URL的方法,例如cUrl吗? 我有点用Fiddler监视和操纵网络流量,这可能会更容易。 在重新访问客户端代码之前,请排除服务器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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