2017-01-27 7 views
1
で終わる文字列を送信するときにエラーを生成します。

1717の長いトークンを返そうとしています。このトークンは、 "==" PHPでAjaxを使用して終了します。JSONエンコードは、==

私はとてもとして値を返していますPHPで

:JavaScriptで

echo json_encode($token); 

Ajaxは次のとおりです。

$.ajax({ 
       type: "GET", 
      dataType:"JSON", 
      url: myajax.ajax_url, 
      data:{ 
       action: "get_token" 
      }, 
      beforeSend: function(){}, 
      success: function(data){ 

      console.log(data); 

      }, 
      error: function(jqXHR, textStatus, errorThrown){ 

       console.warn(jqXHR.responseText) 
       alert(jqXHR + " :: " + textStatus +" :: " +errorThrown); 

      } 
    }); 

私はrecieving午前エラーは次のとおりです。

にSyntaxError:予期しない数Jsonの位置1718

私はPHPのログとトークンの一致を見ていますクロムのエラーメッセージに表示される内容ですが、まだこのメッセージが表示されます。

私は乱数をとることができますが、それはうまくいっていますが、生成されたトークンを使用すると失敗します。

この問題を解決するにはどうすればよいですか。

+1

'json_encode()' '復帰STRING'かは' false'をしていますか?そして、** 1718という文字の周りに**ちょうど追加する**あなたの質問に不可欠ではないでしょうか? – Xorifelse

+0

trueを返します。エラーログに出力できます。さらに調べると、関数またはトランスミッションがエンコーディングの最後に0を追加しているように見えます。だから、 "encodeddata"と表示されます。0 – Brett

答えて

0

問題は私がWordpress Frameworkにあり、それがcurrect値を返すためにwp_send_json()を使用する必要があることでした。それ以外の場合、エラーを引き起こすjsonデータの最後に0を追加していました。

正しい文は次のようになります。

echo wp_send_json($token); 
+0

彼は[タグ:wordpress]を自分のタグで見ないので、それがそうであると仮定します。 – Xorifelse

関連する問題