私はアプリケーションを作成しており、それを開発するためにhttp://c9.io環境を使用しています。これはNodeJSアプリケーションで、クライアントサイドアプリケーションが照会するためのいくつかのRESTエンドポイントを提供します。これまではすべて正常に動作していましたが、今日私が観察していることは、ブラウザからREST APIに送信された1回のコールに対して、2つのリクエストが受信されて表示され、リクエストハンドラが2回コールされていることです。これにより、1つの要求に対する応答時間が遅くなりました。1つだけのメッセージを送信したときにサーバー上で2つのHTTPリクエストを受信
Chromeデベロッパーツールでは、送信されたリクエストは1つのみ表示されますが、app.use()
を使用してExpressで受信リクエストを記録し、リクエストごとに同じリクエストを2回印刷します。また、ハンドラは2回呼び出されます。
これは断続的に起こっているのではなく、毎回です。 私は企業ネットワークの後ろにいます。私がテストのためにその日にたくさんのリクエストを送ったので、それが疑わしいと思ってから監視プログラムがリクエストを送信する可能性はありますか?私は要求を処理するコードを編集していません。
編集:提案されているようにハンドラのコードを追加する。
app.get('/suggestions/:keyword', function(r, s) {
sug_db.retrieveSuggestions(r.params.keyword, function(data) {
s.writeHead(200, {'content-type': 'text/html'});
s.write(renderSugg({data: data}))
s.end();
});
});
app.get('/search/:query', function(r, s) {
esc_db.search(r.params.query, function(data) {
s.send(renderResults({query: r.params.query, results:data}));
});
});
ご覧のとおり、データベースからデータを取得してその結果をHTTP応答として返します。私が使用しているテンプレートエンジンはPug(旧翡翠)です。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Preflighted_requests –
これはCORSコールではありません。また、ブラウザから送信された場合は、インスペクタの右に表示されますか? –
@aditya_mはい、インスペクタにCORSリクエストが表示されます。また、おそらく同じハンドラで処理されないOPTION要求になります。あなたのハンドラコードを見ずに何も言わないのは難しいです。 – rsp