所以...这是问题所在:
我在我的 javascript 文件中得到了这个:
this.fields = {
'zone': ['DouroMinho','TrasosMontes', 'BeiraLitoral', 'BeiraInterior'],
'flower': ['Milho Grao', 'Milho', 'Prado', 'Batata', 'Couve', 'Tomateiro', 'Pessegueiro', 'Pomoideas', 'Vinha'],
'Months': ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro']
}
var sendDataToText = $.ajax({
url: "http://localhost:4000/process-data.php",
type: "POST",
data: { 'input-data': JSON.stringify(this.fields) },
cache: false,
dataType: json,
success: function(data){
console.log('call to process-data successful');
return;
},
error: function() { console.log("process-data falhou"); return; }
});
在我的 php 上我得到了这个:
if(get_magic_quotes_gpc()){
$d = stripslashes($_POST['input-data']);
}else{
$d = $_POST['input-data'];
}
$d = json_decode($d,true);
echo var_dump($d);
我让 MAMP 运行我的服务器并 gulp 在端口 3000 上运行 wep 应用程序。 当我转到 localhost:4000 测试我的 process-data.php 时,它只显示 NULL。
怎么了? json_decode 错误返回 0,这意味着 json_decode 不是问题。 json 也是有效的,并在 ajax 调用之前转换为字符串。请帮助,大声笑。谢谢
最佳答案
当成功的数据进来时,用一个变量来保存context(作用域):
var something;
$.ajax({
...,
success: function(data){
console.log('call to process-data successful');
something = data;
},
...
console.log(something);
关于javascript - json_decode 返回 NULL 和有效的 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29992447/