JS を介してグローバル Ajax リクエスト インスタンスの解析をインターセプトする
次のようなニーズがあったことはありますか: すべての Ajax リクエストに統一署名を追加する必要がある、特定のインターフェイスがリクエストされた回数をカウントする必要がある、http リクエストの取得または投稿のメソッドを制限する必要がある、その他のリクエストを分析する必要がある人々のネットワークプロトコルなど、それではどうするのでしょうか?考えてみてください。すべての ajax リクエストをインターセプトできれば、問題は非常に単純になります。
Ajax-hook ソースコードアドレス: https://github.com/wendux/Ajax-hook
使用方法
1. ajaxhook.js を導入します
<script src="wendu.ajaxhook.js"></script>
2.または関数。
hookAjax({ //拦截回调 onreadystatechange:function(xhr){ console.log("onreadystatechange called: %O",xhr) }, onload:function(xhr){ console.log("onload called: %O",xhr) }, //拦截函数 open:function(arg){ console.log("open called: method:%s,url:%s,async:%s",arg[0],arg[1],arg[2]) } })
わかりました。jQuery (v3.1) の get メソッドを使用してテストします:
// get current page source code $.get().done(function(d){ console.log(d.substr(0,30)+"...") })
結果:
> open called: method:GET,url:http://localhost:63342/Ajax-hook/demo.html,async:true > onload called: XMLHttpRequest > <!DOCTYPE html> <html> <head l...
インターセプトは成功しました! jQuery3.1 が onreadystatechange を放棄し、代わりに onload を使用していることもわかります。
API
hookAjax(ob)
1.ob、タイプはオブジェクト、キーはインターセプトするコールバックまたは関数、値はインターセプト関数です。
2. 戻り値: 元の XMLHttpRequest。書き込みリクエストがあり、傍受されたくない場合は、新しい this を使用できます。
unHookAjax()
1. アンインストール後、インターセプトは無効になります。
Ajaxの動作を変更する
すべてのAjaxリクエストをインターセプトし、リクエストメソッドを検出し、それが「GET」の場合はリクエストを中断し、プロンプトを表示します
hookAjax({ open:function(arg){ if(arg[0]=="GET"){ console.log("Request was aborted! method must be post! ") return true; } } })
すべてのAjaxリクエストをインターセプトし、タイムスタンプを均一に追加するようリクエストします
hookAjax({ open:function(arg){ arg[1]+="?timestamp="+Date.now(); } })
リクエスト「responseText」で返されるデータ
hookAjax({ onload:function(xhr){ //请求到的数据首部添加"hook!" xhr.responseText="hook!"+xhr.responseText; } })
Result:
hook!<!DOCTYPE html> <html> <h...
これらの例を使えば、冒頭で述べた要件は容易に実現できると思います。最後に、unHook
hookAjax({ onreadystatechange:function(xhr){ console.log("onreadystatechange called: %O",xhr) //return true }, onload:function(xhr){ console.log("onload called") xhr.responseText="hook"+xhr.responseText; //return true; }, open:function(arg){ console.log("open called: method:%s,url:%s,async:%s",arg[0],arg[1],arg[2]) arg[1]+="?hook_tag=1"; }, send:function(arg){ console.log("send called: %O",arg[0]) } }) $.get().done(function(d){ console.log(d.substr(0,30)+"...") //use original XMLHttpRequest console.log("unhook") unHookAjax() $.get().done(function(d){ console.log(d.substr(0,10)) }) })
出力をテストします:
open called: method:GET,url:http://localhost:63342/Ajax-hook/demo.html,async:true send called: null onload called hook<!DOCTYPE html> <html> <he... unhook <!DOCTYPE
注
1。インターセプト関数の戻り値はブール値で、デフォルトは false です。リクエストをブロックしないでください。
2. すべてのコールバック インターセプト関数のパラメーターは、onreadystatechange、onload などの現在の XMLHttpRequest インスタンスです。ajax のオリジナル メソッドのすべてのインターセプト関数は、元のパラメーターを配列の形式でインターセプト関数に渡します。インターセプト関数で変更できます。
上記は編集者が紹介した JS インターセプトのグローバル Ajax リクエスト分析の例です。ご質問があればメッセージを残してください。編集者がすぐに返信します。
関連記事:
Ajaxリクエストにおけるインターセプタのインターセプト例を詳しく解説

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









顔の検出および認識テクノロジーは、すでに比較的成熟しており、広く使用されているテクノロジーです。現在、最も広く使用されているインターネット アプリケーション言語は JS ですが、Web フロントエンドでの顔検出と認識の実装には、バックエンドの顔認識と比較して利点と欠点があります。利点としては、ネットワーク インタラクションの削減とリアルタイム認識により、ユーザーの待ち時間が大幅に短縮され、ユーザー エクスペリエンスが向上することが挙げられます。欠点としては、モデル サイズによって制限されるため、精度も制限されることが挙げられます。 js を使用して Web 上に顔検出を実装するにはどうすればよいですか? Web 上で顔認識を実装するには、JavaScript、HTML、CSS、WebRTC など、関連するプログラミング言語とテクノロジに精通している必要があります。同時に、関連するコンピューター ビジョンと人工知能テクノロジーを習得する必要もあります。 Web 側の設計により、次の点に注意してください。

タイトル: jQuery AJAX リクエストの 403 エラーを解決する方法とコード例。403 エラーは、サーバーがリソースへのアクセスを禁止するリクエストを指します。このエラーは通常、リクエストにアクセス許可がないか、サーバーによって拒否されたために発生します。 jQueryAJAX リクエストを行うときにこのような状況に遭遇することがありますが、この記事ではこの問題の解決方法とコード例を紹介します。解決策: 権限を確認します。まず、要求された URL アドレスが正しいことを確認し、リソースにアクセスするための十分な権限があることを確認します。

jQuery は、クライアント側の開発を簡素化するために使用される人気のある JavaScript ライブラリです。 AJAX は、Web ページ全体をリロードせずに、非同期リクエストを送信し、サーバーと対話するテクノロジーです。ただし、jQuery を使用して AJAX リクエストを行うと、403 エラーが発生することがあります。 403 エラーは通常、セキュリティ ポリシーまたは権限の問題が原因で、サーバーによってアクセスが拒否されたエラーです。この記事では、jQueryAJAX リクエストで 403 エラーが発生した場合の解決方法について説明します。

Ajax を使用して PHP メソッドから変数を取得することは、Web 開発では一般的なシナリオであり、Ajax を使用すると、データを更新せずにページを動的に取得できます。この記事では、Ajax を使用して PHP メソッドから変数を取得する方法と、具体的なコード例を紹介します。まず、Ajax リクエストを処理し、必要な変数を返すための PHP ファイルを作成する必要があります。以下は、単純な PHP ファイル getData.php のサンプル コードです。

Kuaishou は、ユーザーが他の人と簡単につながることを可能にする人気の短いビデオ ソーシャル プラットフォームです。時間が経つと、ユーザーのプライベート メッセージが見知らぬ人のメッセージでいっぱいになる可能性があり、ユーザー エクスペリエンスに影響を与える可能性があります。では、Kuaishou で見知らぬ人からのプライベートメッセージを削除するにはどうすればよいでしょうか?この記事では、Kuaishouプラットフォームで見知らぬ人からのプライベートメッセージを削除する方法と、見知らぬ人からのメッセージを傍受することが可能かどうかを詳しく紹介します。 1. Kuaishou のプライベートメッセージで見知らぬ人のメッセージをすべて削除するにはどうすればよいですか? 1. まず、Kuaishou APPを開き、パーソナルセンターに入ります。 2. パーソナル センター ページで、[メッセージ] オプションを見つけてクリックして入力します。 3. メッセージ ページで、[プライベート メッセージ] オプションを見つけてクリックして入力します。 4. プライベート メッセージ ページでは、さまざまなメッセージ カテゴリが表示されます。[見知らぬメッセージ] カテゴリを見つけて、

jQueryAJAX エラー 403 の問題を解決するにはどうすればよいですか? Web アプリケーションを開発する場合、非同期リクエストを送信するために jQuery がよく使用されます。ただし、jQueryAJAX の使用時に、サーバーによってアクセスが禁止されていることを示すエラー コード 403 が発生する場合があります。これは通常、サーバー側のセキュリティ設定が原因ですが、回避する方法があります。この記事では、jQueryAJAX エラー 403 の問題を解決する方法と具体的なコード例を紹介します。 1.作る

QQ ブラウザで広告ポップアップをブロックするにはどうすればよいですか?最近、コンピューターを使用していると、QQ ブラウザーで広告のポップアップが表示される現象に頻繁に遭遇します。私が遭遇したのは QQ ブラウザーのポップアップ広告です。この種の QQ ブラウザーのポップアップ広告に遭遇したときは、それを解決するにはどうすればよいでしょうか? このサイトの編集者と一緒に、QQ ブラウザで広告ポップアップをブロックする方法を見てみましょう。 QQ ブラウザのポップアップ広告を解決するためのチュートリアル 1. まず QQ ブラウザを開き、メイン インターフェイスに入り、右上隅のメニューをクリックします。 2. QQ ブラウザのメニューをクリックすると、アプリケーション センターが表示されるので、それをクリックします。 3. QQ Browser Application Center に入ると、拡張機能ストアがポップアップ表示されます。 4. QQ ブラウザ プラグインをインストールして、広告ポップアップをブロックします。 5. 「今すぐインストール」をクリックします。 6. にインストールします。

PHP と Ajax を使用してオートコンプリート候補エンジンを構築します。 サーバー側スクリプト: Ajax リクエストを処理し、候補を返します (autocomplete.php)。クライアント スクリプト: Ajax リクエストを送信し、提案を表示します (autocomplete.js)。実際のケース: HTML ページにスクリプトを組み込み、検索入力要素の識別子を指定します。
