我无法解析 PHP 在 AJAX- XMLHttpRequest()
之后返回的简单 JSON 对象。简而言之,这是奇怪的之处(使用简单的json进行测试(:
在页面加载时,如果 PHP 发送:
<script>window.onload=function(){JSON2HTML({htm:{world {innerHTML:"hello!"}}});}</script>
我的小JSON2HTML函数识别 TypeOf 对象并毫无怨言地解析 JSON。
但是,如果 PHP 通过 XMLHttpRequest()
返回完全相同的 JSON 字符串(来自相同的 PHP 变量(
{htm:{world:{innerHTML:"hello!"}}}
并且onreadystatechange
调用JSON2HTML
来处理它,然后JavaScript总是将其解释为字符串类型而不是typeof
对象,并且函数失败。
我已经将 php 响应标头设置为 "Content-Type:application/json;charset=utf-8"
,从响应字符串中删除了所有非 ascii 字符,并以各种可以想象的方式操作了 json 对象,并且总是得到相同的结果。我还尝试JSON.parse
ajax 字符串并得到"意外令牌"错误。
有谁知道这里可能会发生什么?
恰好包含有效 JSON 的字符串与实际的 JavaScript 对象不同。在转换为 HTML 之前尝试JSON.parse(your_response_string)
。它可能会抱怨缺少引号,因此请确保您的响应是 100% 有效的 JSON,如下所示:
{"htm":{"world":{"innerHTML":"hello!"}}}