我正在使用 Express、React、Ajax、Plivo。
我有一个 ajax POST 请求,它将数据(用户电话号码和短信)从客户端发送到我的快速服务器。当我发送发布请求时,我在手机上收到了短信,但是当我检查 chrome 开发工具时,它告诉我请求状态处于挂起状态(在服务器中它记录为 status 202
),一段时间后请求状态变为failed
on铬开发工具。
这是我在服务器日志上得到的:
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 分钟才失败,我收到了一次短信。
我一直在寻找其他答案,对于很多人来说,由于网站图标,请求被发送了两次,但在我的情况下,我正在控制台记录 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
});
我不是很有经验,所以我的调试技能不是最好的,或者我只是犯了一个新手错误。