javascript - json_decode 返回 NULL 和有效的 json

标签 javascript php ajax json

所以...这是问题所在:

我在我的 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/

相关文章:

php - 在共享相同 wp_users 和 wp_usermeta 表的两个 Wordpress 安装之间同步所有用户角色。

php - Doctrine 类加载器覆盖我的 __autoload 函数

javascript - document.getElementById(somevar)不工作

Javascript 焦点丢失

Javascript 二维数组

javascript - 使用 CSS/Javascript 在保持纵横比的同时在非正方形图像上创建圆形蒙版

javascript - 在 UTC 中调用 toLocaleString()

php - MySQL建表失败

javascript - 当数据库从另一个浏览器/计算机更新时我如何收到通知

javascript - 由于 webkit 自动填充,无法在输入中键入