【问题标题】:Unable to get ajax post data in PHP function无法在 PHP 函数中获取 ajax 发布数据
【发布时间】:2014-09-15 15:05:40
【问题描述】:

我的 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。我错过了什么吗?如有任何帮助,我将不胜感激。

【问题讨论】:

  • 尝试data = {'token':'880a505d0a86b2sfwe434fdg43gwsf'};,而不是在你的json字符串中使用data.token
  • @ThinkDifferent:OP 的做法没有错;上面的建议不会对创建的对象和发送的数据产生任何影响。最终结果是相同的。
  • 我这样做时收到 500 内部服务器错误。
  • 试试这个var data = "token=880a505d0a86b2sfwe434fdg43gwsf"
  • @ZeeTee:那是错误的,原因与您的答案错误的原因相同。为什么将其发布为评论?它所做的只是绕过 jQuery 的正确序列化代码。

标签: jquery ajax codeigniter post


【解决方案1】:

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

改变这个

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

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

【讨论】:

  • 我认为我不想对配置进行任何更改。我知道它应该使用相同的设置,因为我在项目的其他部分看到完全相同的功能,它们工作得很好,具有相同的配置设置。
  • 我试过这个,因为我找不到解决方案,但它没有帮助
猜你喜欢
  • 2012-11-23
  • 1970-01-01
  • 1970-01-01
  • 2016-04-17
  • 1970-01-01
  • 2020-05-06
  • 1970-01-01
  • 2021-08-19
  • 2015-03-29
相关资源
最近更新 更多