jQuery Ajax リクエスト ステート マネージャー package_jquery
ただし、どれだけ近くにあるとしても、クライアントとサーバーの間でデータが読み込まれるまでの待ち時間が常に発生します。したがって、ほとんどの Web サイトでは、Gif ダイナミック アイコンや「読み込み中...」などの単語を使用して、データがまだ読み込み中であることをユーザーに知らせます。ただし、この問題は非常に面倒で面倒な場合があります。この「Loading」を ajax リクエストの前に表示し、ajax が成功した後に非表示にするか、jquery の ajax と jQuery のグローバル イベント jQuery.ajaxStart() に書き込むかのいずれかになります。 ajaxStop() を使用して、ページ全体の ajax 状態を制御します。前者の方法は単純すぎて使用できません。リクエストごとにこの「Loading」を記述する必要があり、リクエストが成功したか失敗したかに関係なく、これを非表示にする必要があります。後者はグローバル、つまりページ全体のリクエスト ステータスをローカルに表示するという要件を満たせない場合があります。
これらの問題を解決するために、私は Ajax Request Status Manager という jQuery プラグインを開発しました。このプラグインを使うと読み込みの煩わしさが軽減されます。このプラグインを使用すると、Ajax リクエストをトリガーする前にすべてのリクエストを追加して書き込むことができます。必要なのは、ユーザー インタラクション イベントで .request() メソッドを実行することだけです。ページ上のすべてのリクエストを個別に読み込みを表示するように設定することも、グローバルに表示するように設定することもできます (読み込みは 1 つだけ表示されます)。以下はプラグインの具体的な使用法です:
読み込みの CSS スタイルをカスタマイズします:
.state-loading {background: #fff url(images/icon-ajax-loader.gif) 。 .. }
最新バージョンの jquery ファイルを引用します:
注: このプラグインは jquery1.4.4 以降のバージョンでのみテストされています。
Ajax リクエスト ステータス マネージャー プラグイン ファイルを引用します:
準備完了jquery のイベント:
$.loader.install( className, isGlobal );
で .install() メソッドを実行します。 パラメーターの説明:
className: カスタマイズされた読み込みクラス名を示す文字列。上記のように css で定義されたステートロード。
isGlobal: ブール値、ロードをグローバルに表示するか独立して表示するかを定義します。デフォルト値は true です。
成功後に必要な Ajax リクエスト パラメーターとコールバック メソッドを追加します:
$.loader( key ).add( modules, settings , callback );
パラメーターの説明:
キー: 文字列。指定されたモジュールのローダーを作成または取得するには、このキーを使用します。もちろん、同じキーで add() メソッドを複数回実行して異なるモジュールを追加することもできますが、このキーの設定とコールバックは共有されるため、後で追加された設定とコールバックは以前の設定とコールバックを上書きします。
モジュール: jquery オブジェクト。ページ内の同じリクエストで複数のモジュールからのデータを処理できるため、以前に install() メソッドが false に設定されていた場合は、ajax リクエストを実行するときにそれをこのローダーに追加します。すべてのモジュールの読み込みステータスが表示されます。
設定: マップ、jquery の ajax 設定パラメーター。ただし、ajax イベントを設定しないでください。これにより、プラグインのコールバック メソッドがオーバーライドされます。デフォルトのリクエスト タイプは GET です。
callback: 関数、成功後のコールバック関数。デフォルトでは json 型で返されるオブジェクトになります。
add() メソッドは、'module' というプレフィックスが付いた文字列配列を返します。たとえば、3 つの要素を追加すると、結果は ['module1', 'module2', 'module3'] になります。返された配列を通じて、指定したモジュールの 1 つのロードを削除することもできますが、必要に応じて、指定できない、つまりすべてを削除することもできます。
remove() メソッドは、指定されたモジュールを削除します:
$.loader( key ).remove( moduleId );
パラメータの説明:
moduleId: 文字列または配列、として指定します。文字列の場合はモジュールの 1 つが削除され、配列で指定された場合はモジュールが一括で削除されます。パラメータを指定しない場合はすべてのモジュールが削除されます。
例
userinfo という名前のローダーに 2 つのモジュールを追加します:
var id1 = $.loader( 'userinfo' ).add(
$( '#userinfo, #top-userinfo' ),
{ url: 'server/ userinfo.php ' },
function( data ) {
updateContent( $( '#userinfo, #topsection, #footer-userinfo' ), data );
}
);
別のモジュールを userinfo ローダーに追加します:
var id2 = $.loader( 'userinfo' ).add( $('#footer-userinfo') );
var idList = id1。 concat( id2 );
// result: [ 'module1', 'module2', 'module3' ]
2 番目のモジュール、つまり '#top-userinfo' のロードを削除します:
var ret = $.loader( 'userinfo' ).remove( idList[1] );
// 結果: true、モジュール: [ 'module1', 'module3' ]
対話型イベント request() で実行されます。メソッド:
$.loader( key ).request();
]
もちろん、以前に追加した ajax 設定とコールバックを放棄して、インタラクティブ イベントまたは $ に $.ajax を自分で記述することもできます。 .getなど次に、リクエストの前に $.loader( key ).show() を呼び出し、コールバック関数内で $.loader( key ).hide() を呼び出します。これにより、積載状況を柔軟に制御することもできます。
例
$( '#getUserInfo ' ).bind( 'click', function() {
$.loader( 'userinfo' ).request();
});
最初から書き直します リクエスト:
$( ' #getUserInfo' ).bind( 'click', function() {
$.loader( 'userinfo' ).show();
$.get( 'server/userinfo.php', function( data ) {
$.loader ( 'userinfo' ).hide();
updateContent( $( '#userinfo, #topsection, #footer-userinfo' ),
})
} );
注: リクエストが繰り返しトリガーされると、マネージャーは abor() を実行して、以前に完了していないリクエストを防止し、新しいリクエストを再発行します。ただし、jquery の ajaxError イベントを通じてエラー情報を出力する場合。この情報も間違っていると考えられるため、必要に応じて自分でフィルタリングする必要があります。
例
//エラーログの出力
$( 'body' ).bind( 'ajaxError', function(event, xhr, settings, throwError ) {
// アボートエラーメッセージを除外します
if ( xhr.status == = 0 || xhr.readyState === 0 || throwError '' );
このプラグインはシンプルで使いやすいです。コードのロジックはそれほど複雑ではありませんが、私の能力と技術レベルには限界があります。ご質問やバグがございましたら、nicolas-zhao@hotmail.com までメールでお知らせください。来てくれてありがとう!
パッケージのダウンロード:
。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









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

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

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

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

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

Ajax (非同期 JavaScript および XML) を使用すると、ページをリロードせずに動的コンテンツを追加できます。 PHP と Ajax を使用すると、製品リストを動的にロードできます。HTML はコンテナ要素を含むページを作成し、Ajax リクエストはロード後に要素にデータを追加します。 JavaScript は Ajax を使用して XMLHttpRequest を通じてサーバーにリクエストを送信し、サーバーから JSON 形式で商品データを取得します。 PHP は MySQL を使用してデータベースから製品データをクエリし、それを JSON 形式にエンコードします。 JavaScript は JSON データを解析し、ページ コンテナーに表示します。ボタンをクリックすると、製品リストをロードするための Ajax リクエストがトリガーされます。

Ajax は特定のバージョンではなく、一連のテクノロジーを使用して Web ページのコンテンツを非同期に読み込み、更新するテクノロジーです。 Ajax には特定のバージョン番号はありませんが、ajax のバリエーションまたは拡張機能がいくつかあります: 1. jQuery AJAX; 2. Axios; 3. Fetch API; 4. JSONP; 5. XMLHttpRequest Level 2; 6. WebSocket; 7. Server -送信イベント; 8、GraphQL など

Ajax セキュリティを向上させるには、いくつかの方法があります。 CSRF 保護: トークンを生成してクライアントに送信し、それを検証リクエストのサーバー側に追加します。 XSS 保護: htmlspecialchars() を使用して入力をフィルタリングし、悪意のあるスクリプトの挿入を防ぎます。 Content-Security-Policy ヘッダー: 悪意のあるリソースの読み込みを制限し、スクリプトとスタイル シートの読み込みを許可するソースを指定します。サーバー側の入力を検証する: Ajax リクエストから受け取った入力を検証して、攻撃者による入力の脆弱性の悪用を防ぎます。安全な Ajax ライブラリを使用する: jQuery などのライブラリによって提供される自動 CSRF 保護モジュールを利用します。
