php在javascript对象的jquery ajax post后返回null
试图将javascript对象传递给php并出现此错误。我做错了什么php在javascript对象的jquery ajax post后返回null,php,jquery,ajax,Php,Jquery,Ajax,试图将javascript对象传递给php并出现此错误。我做错了什么 var address = {}; address.whatever = "asdf"; $.ajax({ type: 'post', url: '/resources/scripts/php/whatever.php', data: 'address=' + JSON.stringify(address), success:
var address = {};
address.whatever = "asdf";
$.ajax({
type: 'post',
url: '/resources/scripts/php/whatever.php',
data: 'address=' + JSON.stringify(address),
success: function(returnedData){
console.log(returnedData);
},
error: function (xhr, tst, err) {
console.log(err);
},
});
php
控制台:
null
谢谢你的洞察力
$.ajax({
type: 'post',
url: '/resources/scripts/php/whatever.php',
data: {address : address},
success: function(returnedData){
console.log(returnedData);
},
error: function (xhr, tst, err) {
console.log(err);
}
});
试试这个
$.ajax({
type: 'post',
url: '/resources/scripts/php/whatever.php',
data: {'address' : JSON.stringify(address)},
success: function(returnedData){
console.log(returnedData);
},
error: function (xhr, tst, err) {
console.log(err);
},
});
PHP:
不需要JSON.stringify。jQuery会为您处理它 与:
$.ajax({
type: 'post',
url: '/resources/scripts/php/whatever.php',
data: {address: address},
success: function(returnedData){
console.log(returnedData);
},
error: function (xhr, tst, err) {
console.log(err);
},
});
您可以使用:
echo $_POST['address']['whatever'] // output asdf
应该是:
echo $_POST["whatever"];
data: JSON.stringify(address),
及
应该是:
echo $_POST["whatever"];
data: JSON.stringify(address),
犯了一些愚蠢的错误。没有关系。感谢您的关注。在您的PHP代码中,您是指
echo json_encode($s)代码>真的吗?谢谢甚至在IE中?(我读到早期版本在JSON方面有问题)。另外,为什么使用stringify不喜欢在它周围加一个外壳呢?如果有道理的话……是的。对象必须是键/值对。如果value是数组,jQuery将基于传统设置的值(如下所述)使用相同的键序列化多个值。资料来源:
data: 'address=' + JSON.stringify(address),
data: JSON.stringify(address),