无法在PHP函数中获取ajax发布数据

时间:2014-09-15 15:05:41

标签: jquery ajax codeigniter post

我的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。我错过了什么吗?我很感激任何帮助。

1 个答案:

答案 0 :(得分:0)

只需更改codeigniter应用程序文件夹中config.php文件中的以下代码行:

更改此

$config['uri_protocol'] = 'AUTO';

$config['uri_protocol'] = 'QUERY_STRING';
相关问题