应该什么时候Content-Type是application / json

时间:2012-10-18 12:49:32

标签: php javascript json

我的服务器正在向客户端发送数据。

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

标题有什么好处?它对数据进行编码,但在我测试的各种浏览器中似乎没有任何视觉效果。我也看到它破坏了一个fileupload插件(Valum我认为但不记得)。最后,如果我的服务器只返回true / false(或1/0,或success / null),我还应该对响应进行编码吗?

那么,回顾一下我的问题,Content-Type何时以及为什么应该是application / json?

3 个答案:

答案 0 :(得分:5)

简单:每当您提供JSON数据时,内容类型应为application/json。这只是一个正确宣布数据的问题,比如你的汽车上有正确的车牌或一袋芯片上的配料清单。

浏览器中是否存在数据的直观表示是另一个问题,这不是您提供内容类型的主要原因。 (我知道没有浏览器显示JSON数据的漂亮树视图。但它会很好!)

  

最后,如果我的服务器只返回true / false(或1/0,或者success / null),我还应该对响应进行编码吗?

这取决于客户端期望的内容,但最佳策略通常是在您输出的内容中保持一致,即如果您的其他服务也使用JSON编码,则始终对JSON进行编码。

答案 1 :(得分:0)

它应该强制浏览器尝试将其下载为.json文件。 Javascript(例如JQuery)将它解析为json而不是text / html。

答案 2 :(得分:0)

当数据实际上是JSON时,我倾向于使用标头。也就是说,看起来像{...}[...](或者,在这种情况下,它使用json_encode提供)。

此外,它可能对浏览器没有任何影响,因为大多数(没有插件)将其呈现为直接文本,但确实使其返回的数据更简洁。此外,像jQuery这样的库使用此标头来处理响应(如果它未在调用中手动提供)。