0

私はjQuery.getJSONいくつかのデータを取得するために使用しています。helpdesk.data.STATUS.MESSAGE.NOTLOGGEDIN通常のスクリプトタグで作成されたというオブジェクトがあります。への呼び出しによって返される JSON でgetJSON、 を参照しようとしていますhelpdesk.data.STATUS.MESSAGE.NOTLOGGEDIN。このメソッドを使用して.done、JSON をキャプチャし、それを使って何かを行い.error、エラーをキャッチしています。

返される JSON は完全に有効に見えますが.error、ステータス 200 (OK) で関数に入ります。

オブジェクトへの参照を文字列に変更すると、.doneメソッドに入ります。getJSON返される JSON からリクエストを発行するページ内に既に存在するオブジェクトを参照する方法を知っている人はいますか?

返される JSON は次のとおりです。

{"builds": {"status": helpdesk.data.STATUS.FAILURE, "messages": [helpdesk.data.STATUS.MESSAGE.NOTLOGGEDIN]},"details": {"status": helpdesk.data.STATUS.FAILURE, "messages": [helpdesk.data.STATUS.MESSAGE.NOTLOGGEDIN]}}


最終的なコード:

$.ajax("/helpdesk/resources/js/json/data.json.php", {"data": {"data": "styling-builds,details", "update": "update", "nojson": "nojson"}}).done(function(data) {
    eval("data = " + data);
});
4

1 に答える 1

1

要約すると、クライアント変数への参照を JSON 応答に入れるのは明らかに正しくなく、無効な JSON 形式になります ( http://json.parser.online.fr/を参照)。

私が見る唯一の回避策 (JSON 内の既存の変数を本当に参照したい場合) は、応答を文字列として返し、evalクライアント側でそれを呼び出すことです (変数と関数は正しく解釈されます)。

于 2013-11-13T10:11:06.210 に答える