私は非常に奇妙な問題を抱えています。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();