我刚刚将我的 chrome 更新为
Version 61.0.3163.100
,它停止在 Dev 工具的网络预览选项卡中格式化 JSON 数据。
Chrome 现在显示 JSON 的纯字符串。
这是新版本中的错误还是他们为其添加了一些已关闭的配置?
经过大量研究,这似乎是添加到 Chrome Dev Tools 的新功能。
您可以通过确保响应标头上的内容类型设置为“application/json”来在您自己的开发服务器上绕过它:
Content-Type:application/json
这解决了我的问题。
在这里查看更多信息:https://groups.google.com/forum/#!topic/google-chrome-developer-tools/zaphAp4r8zo
对我来说只有 php 响应中的工作设置:
header('Content-Type: application/json');
JSON 结果集可能不会作为对象处理的原因取决于 JSON 的形成方式。结果 JSON 字符串必须使用 double quotes 作为键和值,以便将其解析为对象。
换句话说,返回:
{ "msg" : "Success...", "numRows" : 23, "records" : [ { "name" : "Tony", ... ] } }
当我的 JSON 结果集停止被解析为对象时,其他人添加了使用 single quotes 作为键和/或值的 JSON。
{ "msg" : "Success...", ... , 'archiveMsg' : 'Using archive data' }
只用了一次在数据结构中使用单引号就中断了显示。它在 JavaScript 中仍然可以正常运行,但我不知道为什么 AJAX 结果 JSON 现在是一个未解析的字符串,而不是一个对象。花了一些时间来侦探那个。
Chrome 和 Brave 是我测试过的唯一浏览器。
注意:可以返回“application/json”的标头类型,但 Chrome 和 Brave 只是“漂亮地打印”了 JSON 结构。不理想,但它帮助我一瘸一拐地前进,直到我弄清楚真正的问题是什么。
所以问题最终在新的 Chrome 更新中得到解决。
我现在正在使用 Chrome
v62.0.3202.94
.