Express + Plivo:Ajax POST 请求失败次数,但我仍然在 phone 上收到两次相同的短信
Express + Plivo: Ajax POST request fails times but I still get the same sms on my phone twice
我正在使用 Express、React、Ajax、Plivo。
我有一个 ajax POST 请求将数据(用户 phone 号码和短信)从客户端发送到我的快递服务器。当我发送 post 请求时,我在 phone 上收到短信,但是当我检查 chrome 开发工具时,它告诉我请求状态为待处理(在服务器中它记录为status 202
),一段时间后请求状态在 chrome 开发工具上变为 failed
。
这是我在服务器日志中得到的:
Status: 202
API Response:
{ api_id: 'api-id-string',
message: 'message(s) queued',
message_uuid: [ 'random message_uuid string' ] }
POST / - - ms - -
Status: 202
API Response:
{ api_id: 'api-id-string',
message: 'message(s) queued',
message_uuid: [ 'random message_uuid string' ] }
POST / - - ms - -
我注意到我在发出 POST 请求后立即收到了短信,但如果发送了两次,该请求会等待 4 分钟。我的意思是,如果请求超过 2 分钟标记,我会再次收到短信,然后请求在 3.9 分钟内失败。如果我收到一次短信,则请求会在 2 分钟后失败。所以每 2 分钟我得到 POST / - - ms - -
,我猜这意味着服务器停止尝试完成请求,因此它会重试完成它并再次发送短信。
在上图中,我提交了两个 POST 请求,两条不同的短信。首先,大约需要 4 分钟才能失败,对于那个,我收到了两次相同的短信。第二个花了2分钟才失败,我只收到了一次短信。
我一直在寻找其他答案,似乎对于很多人来说,由于 favicon,请求被发送了两次,但在我的情况下,我正在控制台记录 url 请求和 url 两者相同。它也没有发出另一个请求,它似乎正在重试发出请求所以这个问题不是重复的。
这是我服务器上的代码:
app.post('/', function(req, res) {
console.log(req.url);
p.send_message({
src: plivoNumber,
dst: '1'+req.body.number,
text: req.body.message,
}, function(status, response) {
console.log('Status:', status);
console.log('API Response:\n', response);
});
});
这是 ajax POST 请求:
$.post('/', {
number: this.state.number,
message: this.state.message
});
我不是很有经验,所以我的调试技巧不是最好的,或者我只是犯了一个新手错误。
您没有响应客户端请求,因此 connections/requests 超时。如果您没有任何内容可发送回客户端(200 OK
HTTP 状态代码除外),请在您的 p.send_message()
回调中至少添加一个 res.end()
。
我正在使用 Express、React、Ajax、Plivo。
我有一个 ajax POST 请求将数据(用户 phone 号码和短信)从客户端发送到我的快递服务器。当我发送 post 请求时,我在 phone 上收到短信,但是当我检查 chrome 开发工具时,它告诉我请求状态为待处理(在服务器中它记录为status 202
),一段时间后请求状态在 chrome 开发工具上变为 failed
。
这是我在服务器日志中得到的:
Status: 202
API Response:
{ api_id: 'api-id-string',
message: 'message(s) queued',
message_uuid: [ 'random message_uuid string' ] }
POST / - - ms - -
Status: 202
API Response:
{ api_id: 'api-id-string',
message: 'message(s) queued',
message_uuid: [ 'random message_uuid string' ] }
POST / - - ms - -
我注意到我在发出 POST 请求后立即收到了短信,但如果发送了两次,该请求会等待 4 分钟。我的意思是,如果请求超过 2 分钟标记,我会再次收到短信,然后请求在 3.9 分钟内失败。如果我收到一次短信,则请求会在 2 分钟后失败。所以每 2 分钟我得到 POST / - - ms - -
,我猜这意味着服务器停止尝试完成请求,因此它会重试完成它并再次发送短信。
在上图中,我提交了两个 POST 请求,两条不同的短信。首先,大约需要 4 分钟才能失败,对于那个,我收到了两次相同的短信。第二个花了2分钟才失败,我只收到了一次短信。
我一直在寻找其他答案,似乎对于很多人来说,由于 favicon,请求被发送了两次,但在我的情况下,我正在控制台记录 url 请求和 url 两者相同。它也没有发出另一个请求,它似乎正在重试发出请求所以这个问题不是重复的。
这是我服务器上的代码:
app.post('/', function(req, res) {
console.log(req.url);
p.send_message({
src: plivoNumber,
dst: '1'+req.body.number,
text: req.body.message,
}, function(status, response) {
console.log('Status:', status);
console.log('API Response:\n', response);
});
});
这是 ajax POST 请求:
$.post('/', {
number: this.state.number,
message: this.state.message
});
我不是很有经验,所以我的调试技巧不是最好的,或者我只是犯了一个新手错误。
您没有响应客户端请求,因此 connections/requests 超时。如果您没有任何内容可发送回客户端(200 OK
HTTP 状态代码除外),请在您的 p.send_message()
回调中至少添加一个 res.end()
。