0

私のコードでは、何らかの理由で、通常のHTTPリクエストとAJAXリクエスト(つまり、XML HTTPリクエスト)を区別したいと思います。

たくさん検索した後、を使おうとしましreq.isXMLHttpRequestたが、どちらのタイプのリクエストでも。を返しますundefined

現在、 trueまたはfalseのisAjax値と同様に、すべてのHTTPリクエストにフラグを追加して処理しています。

質問:最良の方法は何ですか?

  1. isAJAX各XMLHTTPリクエストにフラグ()を追加する( trueまたはfalseを使用)

  2. req.isXMLHttpRequest関連する問題を見つけて修正します。

誰かが私に言ったら大いに役立つでしょう、なぜreq.isXMLHttpRequest戻ってくるのundefinedですか?

高度な感謝

注:Node.JSバージョン0.8.20Expressバージョン3.1.0を使用しています

4

2 に答える 2

3

これを試すことができます。

req.xhr

これは、XMLHttpRequest であるかどうかにかかわらず、true または false を返します。

于 2013-02-23T08:12:12.997 に答える
1

@scartagの回答に従ってください。リクエストの送信者を制御する場合 (クライアント コードなど)、HTTP ヘッダーを設定するX-Requested-With: xmlhttprequestか、ボディ/URL を変更して xhr リクエストをマークするだけです。

信頼できないリクエストの送信者を制御しない場合req.xhr、オプションはユースケースによって異なります。たとえば、リクエストに適したコンテンツで応答したいだけの場合は、 (クライアントによって異なりますが、クライアントは処理できない形式を要求しないと想定できます)res.format(_)よりも便利です。req.xhr

于 2013-08-15T14:29:02.100 に答える