Express、React、Ajax、Plivo を使用しています。
クライアントからExpressサーバーにデータ(ユーザーの電話番号とテキストメッセージ)を送信するajax POSTリクエストがあります。投稿リクエストを送信すると、携帯電話にテキスト メッセージが表示されますが、chrome dev ツールを確認すると、リクエスト ステータスが保留中であることがわかります (サーバーでは 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 リクエストを行った直後に SMS を受信することに気付きましたが、2 回送信された場合、リクエストは 4 分間保留されたままになります。つまり、リクエストが 2 分を過ぎるとテキスト メッセージが再度表示され、リクエストは 3.9 分で失敗します。SMS を 1 回受信すると、リクエストは 2 分で失敗します。したがって、2分ごとに取得POST / - - ms - -
します。これは、サーバーがリクエストの完了の試行を停止し、完了を再試行してSMSを再度送信することを意味すると推測しています。
上の画像では、2 つの POST リクエスト、2 つの異なるテキスト メッセージを送信しています。最初は失敗するのに約 4 分かかりました。その 1 つで、同じ SMS が 2 回届きました。2番目のものでは、失敗するのに2分かかりました.1回だけSMSを受け取りました。
私は他の回答を見てきましたが、多くの人にとってファビコンのためにリクエストが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
});
私はあまり経験がないので、私のデバッグ スキルは最高ではありません。