【问题标题】:JSON from jQuery to PHPJSON 从 jQuery 到 PHP
【发布时间】:2010-04-08 20:03:12
【问题描述】:

我需要将一个 JSON 对象从 $.post() jQuery 函数传递到 PHP 页面。
我试过这个插件 jquery-json,但不工作:

//include jquery.js and jquery.json.js

$(document).ready(function(){ 
   var data = new Object(); 
   data.hello = "Hello"; 
   data.world = "World"; 
   var datajson = $.toJSON(data); 
   $.post('file.php', {data: datajson}, function(res){ 
   alert(res);
   }); 
});

file.php 有这么简单的一行:

<?
var_dump(json_decode($_REQUEST['data'], true));
?>

有什么问题?

【问题讨论】:

  • 有什么问题?什么不起作用?有任何错误信息吗?
  • 你安装了什么php版本?

标签: php jquery json jquery-plugins


【解决方案1】:

一些事情:

你没有声明一个datajson变量,应该是

$.post('file.php', {data: dataString}, function(res){ alert(res); });

改为?

看起来你的 PHP 中也有一个类型:son_decode 需要是 json_decode。

【讨论】:

    【解决方案2】:

    我觉得这个函数拼错了son_decode

    应该是json_decode参考here

    【讨论】:

      【解决方案3】:

      Firebug 参数正常,但警报返回 NULL。
      PHP问题?

      【讨论】:

        【解决方案4】:

        只需检查您的 PHP 是否 >= 5.2.0 如果不是,您可以包含一个兼容库,类似于 http://pear.php.net/pepr/pepr-proposal-show.php?id=198 中的一个

        【讨论】:

          【解决方案5】:

          检查phpinfo() php-json 实际上是可用的。在某些安装中,它不是。

          【讨论】:

            【解决方案6】:

            由于魔术引号设置,PHP 可能会添加斜杠。简单的解决方法是像这样将 stripslashes() 包裹起来:

            $data = stripslashes(json_decode($_REQUEST['data'], true));
            

            更深入的回答here. 另外,出于安全原因,您可能应该使用$_POST 而不是$_REQUEST

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2015-09-17
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多