ホームページ ウェブフロントエンド jsチュートリアル JS を介してグローバル Ajax リクエスト インスタンスの解析をインターセプトする

JS を介してグローバル Ajax リクエスト インスタンスの解析をインターセプトする

Mar 28, 2017 pm 02:39 PM
ajax js インターセプト 聞く

次のようなニーズがあったことはありますか: すべての 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リクエストにおけるインターセプタのインターセプト例を詳しく解説

Mock.jsを使用してNode.jsサーバー環境でAJAXリクエストをインターセプトするチュートリアル

php を介した ajax リクエスト

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

推奨: 優れた JS オープンソースの顔検出および認識プロジェクト 推奨: 優れた JS オープンソースの顔検出および認識プロジェクト Apr 03, 2024 am 11:55 AM

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

jQuery AJAX リクエストで発生した 403 エラーを解決する方法 jQuery AJAX リクエストで発生した 403 エラーを解決する方法 Feb 20, 2024 am 10:07 AM

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

jQuery AJAXリクエスト403エラーを解決する方法 jQuery AJAXリクエスト403エラーを解決する方法 Feb 19, 2024 pm 05:55 PM

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

Ajaxを使用してPHPメソッドから変数を取得するにはどうすればよいですか? Ajaxを使用してPHPメソッドから変数を取得するにはどうすればよいですか? Mar 09, 2024 pm 05:36 PM

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

Kuaishou のプライベートメッセージで見知らぬ人のメッセージをすべて削除するにはどうすればよいですか?見知らぬ人からのプライベートメッセージが傍受される可能性はありますか? Kuaishou のプライベートメッセージで見知らぬ人のメッセージをすべて削除するにはどうすればよいですか?見知らぬ人からのプライベートメッセージが傍受される可能性はありますか? Mar 22, 2024 am 08:50 AM

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

jQuery AJAX エラー 403 の問題を解決するにはどうすればよいですか? jQuery AJAX エラー 403 の問題を解決するにはどうすればよいですか? Feb 23, 2024 pm 04:27 PM

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

QQ ブラウザで広告ポップアップをブロックする方法 QQ ブラウザで広告ポップアップをブロックする方法 Jan 31, 2024 pm 06:00 PM

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

PHP と Ajax: オートコンプリート提案エンジンの構築 PHP と Ajax: オートコンプリート提案エンジンの構築 Jun 02, 2024 pm 08:39 PM

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

See all articles