0

AJAX を使用して Wordpress で投稿を編集するフロント エンド エディターをセットアップしました。私のフォームはphpファイルに送信され、データベースが正常に更新され、次の関数を使用して応答が作成されます。

  function generate_response($action, $message = '', $details = '' ){
    $response = array(
        "action"  => $action,
        "message" => $message,
        "details" => $details
        );

    echo json_encode($response, JSON_FORCE_OBJECT);
}

ただし、応答が適切にエンコードされていないようjsonResponseです。JS でリターンをログに記録すると、次のようになります。

Object {action: "updated", message: "Succes (no changes detected).", details: ""}

、 、およびは二重引用符で囲まれていないためaction、malforemd JSON であると確信しています。messagedetails

応答を解析しようとしましたが、得られるのは次のnullとおりです。

  response = jQuery.parseJSON(jsonResponse);
  console.log(response); //returns null

ここで何が間違っていますか?私は正しいのですが、応答が適切にフォーマットされていません。もしそうなら、どうすれば修正できますか?

4

2 に答える 2

1

ajax の結果をログに記録すると、次のようになります。

Object {action: "updated", message: "Succes (no changes detected).", details: ""}

これはすでに JSON 文字列ではなくオブジェクトです。つまり、おそらくdataType: 'JSON'ajax 呼び出しで設定され、JSON は jQuery によって自動的に解析され、再度解析するとエラーが発生するだけです。

あなたがする必要があるのは、応答を使用することだけで、解析は必要ありません:

var action = response.action;
于 2013-03-28T23:40:43.897 に答える
0

@adeneoしたがって、クエリを実行して上位5つの投稿をロードし、結果が何であれ、それらはjsonにエンコードされます.取得している出力はオブジェクトであり、JSON文字列ではありませんか?

昨日は、myoutput が json 文字列であると仮定して、stringify を json に変換するためだけに数時間を費やしました。

于 2013-03-29T05:55:10.710 に答える