Jquery POST unicode 字符串到 codeigniter php

Jquery POST unicode string to codeigniter php

我正在尝试使用 jquery 实现自定义建议引擎。

我接受用户输入,调用我的 codeigniter v2 php 代码,以便从预建的同义词 table.

中获取匹配项

我的 javascript 看起来像这样:

var user_str = $("#some-id").val();

$.ajax({
    type: "POST",
    url: "http://localhost/my-app/app/suggestions/",
    data: {"doc": user_str},
    processData: false
})
.done(function (data)
{
    // Show suggestions...
});

我的 PHP 代码(控制器)如下所示:

function suggestions()
{
    $user_input = trim($_POST['doc']);
    die("[$user_input]");
}

但是数据没有发布到我的 PHP :( 我得到的回声是空的 [](没有 500 错误或任何错误)

我花了 2 天时间寻找答案,我在 SO / google 上读到的内容没有帮助。我能够使用 GET 来完成这项工作,但是话又说回来,这不适用于 unicode 字符串,所以我想我应该使用 POST 代替(只有这也不起作用 :()

谁能告诉我如何解决这个问题?此外,这必须与 unicode 字符串一起使用,这是该项目中的重要要求。

我正在使用 PHP 5.3.8

尝试使用$.post方法,然后调试。这样做:

JS

var user_str = $("#some-id").val();
var url = "http://localhost/my-app/app/suggestions";
var postdata = {doc:user_str};
$.post(url, postdata, function(result){
    console.log(result);
});

PHP

function suggestions(){
    $user_input = $this->input->post('doc');
    return "MESSAGE FROM CONTROLLER. USER INPUT: ".$user_input;
}

这应该将消息输出到您的控制台。让我知道它是否有效。

对于那些感兴趣的人,这对我有用,即使 csrf_protection 设置为 true

var cct = $.cookie('csrf_the_cookie_whatever_name');
$.ajax({
    url: the_url,
    type: 'POST',
    async: false,
    dataType: 'json',
    data: {'doc': user_str, 'csrf_test_your_name': cct}
})
.done(function(result) {
    console.log(result);
});