我一直试图弄清楚 header('Content-Type: application/json')
在 php 脚本中的真正用途是什么,我在 stackoverflow 上发现了关于这个主题的不同问题和答案,但我仍然没有完全理解它……
所以问题来了:我在一些 php 项目中看到过这行代码,我正在努力理解
- 如果在另一个网页调用此实际脚本(例如使用 ajax)时使用它,以便调用页面可以从 php 页面获取 json
或者
- 如果此脚本意味着 php 页面将处理从另一个网页发送的 json。或者也许是别的什么???
如果得到回答,另一件事可以帮助我,最近我一直在使用 cURL 从资源(外部 url)中检索 json,我不得不将这个标头(Content-type:application/json)放在请求中。我是将这个标头发送到外部资源还是这个我的标头以便我可以处理返回的 json ?
谢谢
原文由 naspy971 发布,翻译遵循 CC BY-SA 4.0 许可协议
好吧,有兴趣的朋友,我终于想通了
header('Content-Type: application/json')
是 在另一个页面调用php脚本时使用的,这样另一个页面就可以自动将结果解析为json 。例如我的 test.php 中有:
在我的 main.js 中
当我没有将 dataType 设置为“json”或者当我的 test.php 中没有标头时,警报会给出
{"a":1,"b":2,"c":3,"d":4,"e":5}
这是一个字符串(尝试使用 typeof(response),当我有这个标头,或数据类型:“json”,我从警报中得到[object Object]
。所以这个标头函数用于向调用页面指示它返回哪种类型的数据,以便您知道如何处理它。在我的脚本中,如果我没有header('Content-Type: application/json')
,我将不得不像这样解析 javascript 中的响应:JSON.parse(response)
以使其成为 json ,但是有了那个标头,我已经有了一个 json 对象,我可以用jSON.stringify(response)
将它解析为 html。