【问题标题】:Passing jquery variable with json使用 json 传递 jquery 变量
【发布时间】:2012-08-21 13:01:00
【问题描述】:

我正在尝试将 jquery 字符串传递给我的 cakephp 控制器,但我不断收到错误消息,提示 json_decode 需要一个字符串,但传递了一个数组。

这是我的 ajax 的代码:

var str = 'Data that i need';

    var jsonString = JSON.stringify(str);

    $.ajax({
        type: "POST",
        url: "http:/Configs/",
        cache: false,
        datatype: 'json',
        data: {data : jsonString},
        timeout: 100000,

        success: function(data) 
        {
            alert('Ok');
        }
    });

在我的控制器中,我试图像这样接收数据:

$value = json_decode($_POST['data']);

但是我得到了上面提到的错误任何想法如何解决这个问题将非常感谢。

【问题讨论】:

  • 仅供参考 - htt://Configs,而不是 http://Configs
  • 为什么会有什么不同?
  • 糟糕,意思是 http://。我只是指出双斜线。我不确定为什么。它是 RFC 3986 的一部分,如果有权限 (?) 是必需的……您必须阅读 rfc 以获得对此的解释。 tools.ietf.org/html/rfc3986#section-3。你也可以看到这个SO question
  • 对不起,我有双//,但我不想发布我的服务器地址,所以我只是删除了大部分地址,显然是一个斜线到远 :)

标签: jquery ajax json cakephp


【解决方案1】:

您确定您使用的网址正确吗? 如果您使用的是 CakePHP,那么为什么不使用 $this->request->data

尝试调试您的代码

pr($_POST); exit;

pr($this->request); exit;

他们说什么?

【讨论】:

  • 是的,这有助于它为我提供参数] => Array ([plugin] => [controller] => configs [action] => index [named] => Array () [pass] = > Array ( ) [isAjax] => ) [data] => Array ( [BEHIND_GATEWAY] => NO [DHCP_SERVER] => [DHCP_SERVER_IP] => 159. [DHCP_SERVER_ROOT_PASS] => 1 这些是我需要的值
【解决方案2】:

试试这个:

var str = 'Data that i need';

var jsonString = JSON.stringify(str);

var DataToSend = {};
DataToSend.data = JSON.stringify(jsonString);

$.ajax({
    type: "POST",
    url: "http:/Configs/",
    cache: false,
    datatype: 'json',
    data: JSON.stringify(DataToSend),
    timeout: 100000,

    success: function(data) 
    {
        alert('Ok');
    }
});

【讨论】:

  • 那么它在后端.. Jquery 代码很好。在 .NET 中,我可以解析 json 数据。我对php了解不多
  • 后端是什么意思,能详细说明一下吗?
  • 我的意思是问题似乎出在“后端”,这意味着在服务器上运行的代码。在您的情况下,它在 PHP 中。我使用了这个 Jquery 代码,并且能够在 .NET 中对其进行解析,因此这意味着这里的 Jquery 代码很好。我无法在 PHP 中为您提供帮助,抱歉
猜你喜欢
  • 2012-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多