3

サーバーがクライアントにデータを送信しています。

header('Content-type: application/json');
echo json_encode($jsondata);

ヘッダーの利点は何ですか?データをエンコードしますが、テストしたさまざまなブラウザで視覚効果がないようです。私はそれがfileuploadプラグインを壊すのを見ました(Valumは私が思うが思い出せない)。最後に、サーバーがtrue / false(または1/0、またはsuccess / null)のみを返している場合でも、応答をエンコードする必要がありますか?

それで、私の質問を要約すると、Content-Typeはいつそしてなぜapplication / jsonである必要がありますか?

4

3 に答える 3

5

シンプル:application/jsonJSONデータを提供する場合は常にコンテンツタイプを指定する必要があります。車に適切なナンバープレートを貼ったり、チップの袋に材料リストを載せたりするなど、データを適切に宣言するだけです。

ブラウザにデータの視覚的表現があるかどうかは別の問題であり、それがコンテンツタイプを提供する主な理由ではありません。(JSONデータの優れたツリービューを表示するブラウザーはありません。ただし、それは素晴らしいことです!)

最後に、サーバーがtrue / false(または1/0、またはsuccess / null)のみを返している場合でも、応答をエンコードする必要がありますか?

クライアントが何を期待するかによって異なりますが、通常、出力内容に一貫性を持たせることが最善のポリシーです。つまり、他のサービスでもJSONエンコードを使用する場合は、常にJSONエンコードを使用します。

于 2012-10-18T12:51:15.577 に答える
0

ブラウザに.jsonファイルとしてのダウンロードを強制する必要があります。Javascript(たとえば、JQuery)は、text/htmlではなくjsonとして解析します。

于 2012-10-18T12:52:11.910 に答える
0

データが実際のJSONである場合、私はヘッダーを使用する傾向があります。つまり、{...}またはのように見えます[...](または、この場合は、を使用して提供されますjson_encode)。

また、ほとんどの場合(プラグインなしで)ストレートテキストとしてレンダリングされるため、ブラウザにはおそらく影響はありませんが、返されるデータがより簡潔になります。また、ライブラリjQueryはこのヘッダーを使用して応答を処理します(呼び出しで手動で指定されていない場合)。

于 2012-10-18T12:52:34.690 に答える