0

两部分问题。

如何在 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.

任何指针?

4

2 回答 2

2

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

于 2012-06-03T04:00:59.710 回答
2

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

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

于 2012-06-03T04:04:19.217 回答