我正在尝试通过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数据被中断的&
字符,我该如何解决这个问题?
由于
答案 0 :(得分:1)
不要将字符串传递给data
。
传递对象。 jQuery会为你正确编码。
data: {
name: 'john',
data: '[{"label":"test & test"}]'
}
如果您想自己编码,请使用encodeURIComponent
。