jQuery Ajax 呼び出しでのリダイレクト リクエストの処理
jQuery を使用して Ajax 呼び出しを実行する場合、リダイレクト リクエストの管理方法を考慮することが重要です。サーバーがリダイレクト ディレクティブで応答した場合、ブラウザーはナビゲーションを透過的に処理するため、ユーザー エクスペリエンスが混乱する可能性があります。
解決策の 1 つは、HTTP 応答ステータス コードを 278 に設定し、ブラウザーが自動的に従うべきではないことを示すことです。リダイレクト。このアプローチは機能しますが、ハッキングとみなされます。
より洗練された解決策は、通信に JSON を利用することです。 Ajax リクエストに対するレスポンスにはステータス コード 200 が含まれる場合がありますが、レスポンスの本文にはクライアント側の JavaScript に実行するアクションを指示する JSON オブジェクトが含まれます。
たとえば、次のシナリオを考えてみましょう。Ajaxリクエストは、ユーザーを新しいページにリダイレクトするか、現在のページのフォームを置き換えることができます。これを処理するための JavaScript ロジックは次のようになります。
$.ajax({ type: "POST", url: reqUrl, data: reqBody, dataType: "json", success: function(data, textStatus) { if (data.redirect) { // data.redirect contains the string URL to redirect to window.location.href = data.redirect; } else { // data.form contains the HTML for the replacement form $("#myform").replaceWith(data.form); } } });
このアプローチでは、JSON オブジェクトには、実行するアクション (「リダイレクト」や「フォーム」など) を示すメンバーが含まれています。次に、JavaScript コードが JSON を解析し、適切なアクションを実行します。
JSON を使用すると、サーバーは HTTP ステータス コードに依存せずに応答を制御でき、より柔軟でカスタマイズ可能なソリューションが提供されます。
以上がjQuery Ajax 呼び出しでサーバー リダイレクトを適切に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。