发送以==结尾的字符串时,JSON Encode会生成错误

时间:2017-01-27 01:13:18

标签: php json ajax wordpress

我正在尝试返回一个1717长的令牌,以#34; =="结尾使用php到Ajax。

在PHP中,我将返回值:

echo json_encode($token);

在Javascript中,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);

            }
    });

我收到的错误是:

SyntaxError:位于1718的Json中的意外数字

我查看了PHP日志,并且令牌与chrome中的错误消息中显示的内容相匹配,但我仍然收到此消息。

我可以取一个随机数,它会很好,但是如果我使用生成的令牌就会失败。

如何解决此问题。

1 个答案:

答案 0 :(得分:0)

问题是我在Wordpress Framework中并且需要使用wp_send_json()来返回当前值,否则它会在json数据的末尾添加0,从而导致错误。

正确的陈述应该是:

echo wp_send_json($token);