【问题标题】:Send JSON via AJAX, return whatever通过 AJAX 发送 JSON,返回任何内容
【发布时间】:2012-06-03 03:51:09
【问题描述】:

两部分问题。

如何在 AJAX 调用的控制器中获取发布数据?

我发送的 JSON 没有标识。例如:

$.ajax({
    type: 'POST',
    url: action,
    data: JSON.stringify(data),
    success: function(data){
        alert(data);
    },
    dataType: 'json'
});

data 就是 [{"name":"variable_name", "value":"12"}]

我正在尝试:

public function save()
{
    header('Content-Type: application/json');
    $json = $this->input->post('data');        
    echo $json;
}

如何返回 JSON 以外的内容?

例如,我正在使用以下控制器进行测试:

public function save()
{
    echo "test";
}

调用成功函数时我得到的只是null

任何指针?

【问题讨论】:

    标签: php jquery json codeigniter


    【解决方案1】:

    您将不必设置dataType。当数据类型设置为'json'时,jquery会自动将接收到的数据转换为js对象。由于您只返回一个字符串(这不是有效的 json),因此 json 解析器不知道该做什么,只返回 null。通过删除数据类型,您可以获得原始字符串,然后根据字符串的内容使用条件来决定是否将其解析为 json。

    【讨论】:

      【解决方案2】:

      在 php 中获取原始 POST 数据的方式(至少一种方式是)file_get_contents('php://input')

      这会将 JSON 作为原始字符串返回,您可以调用 json_decode on。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-30
        • 2016-10-26
        • 2011-06-15
        相关资源
        最近更新 更多