私は実際にphpスクリプトでのheader('Content-Type: application/json')
の使用法を理解しようとしましたが、この主題に関するstackoverflowでさまざまな質問と回答を見つけましたが、それでも完全に理解できません...
だからここに質問があります:私はいくつかのPHPプロジェクトでこのコード行を見たことがあります、そして私は理解しようとしています
OR
回答した場合に役立つもう1つのことは、最近、cURLを使用してリソース(外部URL)からjsonを取得していて、このヘッダー(Content-type:application/json)をリクエストに含める必要があったことです。返されたjsonを処理できるように、このヘッダーを労力リソースに送信しましたか、それともこのMYヘッダーでしたか?
ありがとう
興味のある人にはわかりましたが、header('Content-Type: application/json')
が使用されていることを最後に理解しました別のページがphpスクリプトを呼び出しているとき、他のページがjsonとして結果を自動的に解析できるようにするため。
たとえば、私はtest.phpにあります:
_header('Content-type: application/json; charset=utf-8');
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr); // {"a":1,"b":2,"c":3,"d":4,"e":5}
_
そして私のmain.js
_function test() {
$.ajax({
url: 'test.php',
type: 'GET',
//dataType: 'html',
success: function (response) {
alert(response);
}
});
};
_
DataTypeを "json"に設定していない場合、またはtest.phpにヘッダーがない場合、アラートは文字列(typeof(response)で試行された)である_{"a":1,"b":2,"c":3,"d":4,"e":5}
_を示し、これがある場合ヘッダー、またはdataType: "json"の場合、アラートから_[object Object]
_を取得します。このヘッダー関数は、呼び出し側のページに、返されるデータのタイプを示すためにあり、その対処方法を知ることができます。 。私のスクリプトでは、header('Content-Type: application/json')
がない場合、JavaScriptでの応答を次のように解析する必要があります:JSON.parse(response)
それをjsonにするために、ヘッダー、私はすでにjsonオブジェクトを持っています、そしてそれをjSON.stringify(response)
でhtmlに解析することができます。
HTTP応答には常にContent-Type
を設定して、その応答で提供する内容を説明する必要があります。
それがJSONか他の何かであるかどうか、およびAJAX要求またはその他の種類の要求に対するものかどうか。
また、すべてのrequestにContent-Type
を設定して、POSTペイロードを説明する必要があります。
PHPでは、スクリプトで_Content-Type
_ヘッダーを指定しない場合、デフォルトで設定したものにデフォルト設定されます default-mimetype が_php.ini
_ファイルにあり、通常は_text/html
_です。
header('Content-Type: application/json')
を呼び出すと、デフォルトの設定が上書きされるため、スクリプトは、要求されたときに_Content-Type
_で応答します。
また、_Content-type:application/json
_ヘッダーを指定してcurl
を呼び出す場合は、期待される応答ではなく、リクエストの本文にコンテンツタイプを指定します。
Content-Typeフィールドの目的は、受信ユーザーエージェントが適切なエージェントまたはメカニズムを選択してユーザーにデータを提示したり、適切な方法でデータを処理したりできるように、本文に含まれるデータを十分に説明することです。
簡単に言えば、受信者に受信したデータの種類を通知し、それに応じて消費するだけです。