Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过AJAX发送JSON,返回任何内容_Php_Jquery_Json_Codeigniter - Fatal编程技术网

Php 通过AJAX发送JSON,返回任何内容

Php 通过AJAX发送JSON,返回任何内容,php,jquery,json,codeigniter,Php,Jquery,Json,Codeigniter,问题分为两部分 如何在AJAX调用的控制器中获取post数据? 我发送的JSON没有标识。例如: $.ajax({ type: 'POST', url: action, data: JSON.stringify(data), success: function(data){ alert(data); }, dataType: 'json' }); 其中,数据只是[{“name”:“variable\u name”,“value”:

问题分为两部分

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

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

$.ajax({
    type: 'POST',
    url: action,
    data: JSON.stringify(data),
    success: function(data){
        alert(data);
    },
    dataType: 'json'
});
其中,
数据
只是
[{“name”:“variable\u name”,“value”:“12”}]

我正在努力:

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

如何返回JSON以外的内容?

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

public function save()
{
    echo "test";
}
调用success函数时得到的结果是
null


有指针吗?

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

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

在php中获取原始POST数据的方式(至少有一种方式是)
file\u get\u contents('php://input)


这将以原始字符串的形式返回JSON,您可以调用
JSON\u decode

在php中获取原始POST数据的方式(至少有一种方式是)
file\u get\u contents('php://input)

这将以原始字符串的形式返回JSON,您可以调用
JSON\u decode
on