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

开发者在客户端使用AJAX发起POST请求到服务器,预期在用户无操作后120秒发送'F'。然而,服务器记录了'NO'却未接收到预期的响应,反而浏览器报错 net::ERR_EMPTY_RESPONSE。文章探讨了可能的原因及解决策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我已经找到了什么:

错误:

无法加载资源:net :: ERR_EMPTY_RESPONSE

CODE:

客户端

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秒后,会记录“NO”并且应该发送“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请求并且实际从我的服务器获得正确的响应,我该怎么办?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值