两部分问题。
如何在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
。
任何指针?
答案 0 :(得分:2)
您将不必设置dataType
。当数据类型设置为'json'
时,jquery会自动将已获取的数据转换为js对象。由于你只返回一个字符串(这是无效的json),json解析器不知道该怎么做,只返回null。通过删除数据类型,您可以获取原始字符串,然后根据字符串的内容使用条件来决定是否将其解析为json。
答案 1 :(得分:2)
你在php中获取原始POST数据的方式(至少是一种方式)file_get_contents('php://input')
这会将JSON作为原始字符串返回,您可以在其上调用json_decode
。