所以......这就是问题:
我在我的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运行我的服务器,并在端口3000上运行wep app。 当我去localhost:4000测试我的process-data.php它只显示NULL。
怎么了? json_decode错误返回0,这意味着json_decode不是问题。 json也有效,并在ajax调用之前变为字符串。请帮忙,哈哈。谢谢
答案 0 :(得分:3)
当成功的数据进入时,使用变量保存上下文(范围):
var something;
$.ajax({
...,
success: function(data){
console.log('call to process-data successful');
something = data;
},
...
console.log(something);