如何通过ajax将包含(&)的json发送到php脚本?

时间:2018-03-19 11:25:51

标签: php json ajax

我正在尝试通过ajax将json数据发送到php脚本,但我有以下问题:

这是我的HTML:

$(document).on('click', '#my-button', function(){
    var myData = '[{"label":"test & test"}]';
    $.ajax({
        url: 'demp.php',
        type: 'post',
        data: 'name=john&data=' + myData,
        dataType: 'json',
        success: function(json) {
        },
        error: function(xhr, ajaxOptions, thrownError) {
            console.log(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
        }
    });
});

我的php:

var_dump($_POST);

这是我收到的数据:

array(3) {
    ["name"]=> string(4) "john" 
    ["data"]=> string(16) "[{"label":"test " 
    ["test"}]"]=> string(0) "" 
}

关于我的json数据被中断的&字符,我该如何解决这个问题?

由于

1 个答案:

答案 0 :(得分:1)

不要将字符串传递给data

传递对象。 jQuery会为你正确编码。

data: {
    name: 'john',
    data: '[{"label":"test & test"}]'
}

如果您想自己编码,请使用encodeURIComponent