我的javascript中有以下代码:
data = {};
data.token = '880a505d0a86b2sfwe434fdg43gwsf';
url = '/test/ajax/';
$.ajax({
url: url,
type: "POST",
data: data,
success: function(data) {
alert('success');
},
error: function(xhr, ajaxOptions, error) {
alert(xhr.status);
alert(error);
},
});
对于PHP,在文本控制器(即test.php)和ajax动作中,我有:
public function ajax()
{
$input = $this->input->post();
print_r($input['token']);
}
但我得到一个错误,说未定义的索引:令牌。谁能告诉我我做错了什么?
修改
请注意对javascript的修改。
data = {};
val = {
"name": 'John',
"id": 10,
}
data.user = JSON.stringify(val);
data.token = '880a505d0a86b2sfwe434fdg43gwsf';
url = '/test/ajax/';
$.ajax({
url: url,
type: "POST",
data: data,
success: function(data) {
alert('success');
},
error: function(xhr, ajaxOptions, error) {
alert(xhr.status);
alert(error);
},
});
在php中,我使用$this->input->is_ajax_request()
检查它是否是ajax请求,并且返回的值为false。我错过了什么吗?我很感激任何帮助。
答案 0 :(得分:0)
只需更改codeigniter应用程序文件夹中config.php文件中的以下代码行:
更改此
$config['uri_protocol'] = 'AUTO';
要
$config['uri_protocol'] = 'QUERY_STRING';