我有一个非常奇怪的问题。我的 JSON.parse 似乎不起作用。我也尝试过使用 eval 但这也无济于事。下面是我的代码:
var responseDoc = xmlHttp.responseText;
document.getElementById("debug1").innerHTML=responseDoc;
var response = JSON.parse(responseDoc);
document.getElementById("debug2").innerHTML=response.category;
我的 responseDoc 看起来像这样
{"id":null,"category":"dog","price":"4321","name":"new product 123","sku":"1234","success":true}
但是 response.category 是"undefined"
. 任何想法为什么会发生这种情况?我已经花了几个小时,但无法弄清楚。非常感谢!
*更新*:
正如一些人建议的那样删除了 stringify -> 仍然无法正常工作。
如果我尝试下面的代码,我会从控制台收到“Uncaught SyntaxError: Unexpected token <”:
var response = JSON.parse(xmlHttp.responseText);
*更新2 *:
发现了问题。这是因为我的 responseDoc 正在获取 HTML Doc。不是 JSON 对象。不知道为什么会这样。这是我处理ajax请求的代码(我正在使用jsp):
JSONObject result = new JSONObject();
result.put("success",true);
result.put("id",request.getParameter("id"));
result.put("name", request.getParameter("name"));
result.put("sku",request.getParameter("sku"));
result.put("price",request.getParameter("price"));
result.put("category",request.getParameter("category"));
out.print(result);
out.flush();