PHP を書かずに AJAX 応答ヘッダーを変更する方法
AJAX (非同期 JavaScript および XML) は一般的に使用される Web 開発テクノロジであり、Web ページ全体を更新せずに非同期でデータを要求できるため、ユーザー エクスペリエンスが向上します。 。開発プロセスでは、要求された URL および POST パラメーターに加えて、AJAX 応答ヘッダーも非常に重要な部分になります。
一部の複雑なアプリケーションでは、開発者は AJAX 応答ヘッダーの内容を制御して、アプリケーションのロジックと一貫性を持たせる必要があります。 PHP では、通常、header() 関数を使用して AJAX 応答ヘッダーを設定します。ただし、場合によっては、PHP を使用せずに AJAX 応答ヘッダーを変更する必要がある場合があります。この記事では、この目的を達成するための非常に実践的な方法をいくつか紹介します。
1. jQuery の使用
jQuery は、DOM および AJAX との対話を簡素化する非常に人気のある JavaScript ライブラリです。 jQuery では、次のコードを使用して AJAX 応答ヘッダーを変更できます。
$.ajaxSetup({ beforeSend: function(jqXHR) { jqXHR.overrideMimeType("text/plain; charset=x-user-defined"); } });
beforeSend 関数を通じて、jqXHR オブジェクトのプロパティを変更して、AJAX 応答ヘッダーを変更する目的を達成できます。
2. XMLHttpRequest の使用
XMLHttpRequest は JavaScript のネイティブ API であり、ページ全体を更新せずにサーバーからデータをリクエストできます。 XMLHttpRequest を通じて、サーバーにデータをリクエストし、応答を受信した後に応答ヘッダーを変更できます。 XMLHttpRequest の使用例を次に示します。
var xhr = new XMLHttpRequest(); xhr.open('GET', '/mydata', true); xhr.onreadystatechange = function() { if (xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200) { xhr.getResponseHeader('Content-Type'); // 获取响应头 xhr.overrideMimeType('text/plain; charset=x-user-defined'); // 修改响应头 console.log(xhr.responseText); } }; xhr.send();
overrideMimeType() 関数を通じて、XMLHttpRequest オブジェクトの応答ヘッダーを変更できます。
3. Fetch API の使用
Fetch API は、ネットワーク リクエストを作成するための JavaScript API であり、HTTP リクエストを送信して応答を取得できるように、シンプルかつエレガントな方法を提供します。 Fetch API を通じて、サーバーにデータをリクエストし、応答を受信した後に応答ヘッダーを変更できます。以下は、Fetch API の使用例です。
fetch('/mydata') .then(function(response) { response.headers.get('Content-Type'); // 获取响应头 response = new Response(response.body, { headers: { 'Content-Type': 'text/plain; charset=x-user-defined' // 修改响应头 } }); console.log(response); });
Response オブジェクトの headers プロパティを設定することで、応答ヘッダーを変更できます。
4. 概要
この記事では、PHP を使用せずに AJAX 応答ヘッダーを変更する 3 つの方法を紹介します。 jQuery、XMLHttpRequest、および Fetch API を使用することは、アプリケーション ロジックを実装するために AJAX 応答ヘッダーの内容をより適切に制御できる非常にシンプルで洗練された方法です。
以上がPHPを書かずにAjaxレスポンスヘッダーを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。