JQuery Mobile POST数据在$ _POST中为空

时间:2012-10-11 13:23:27

标签: php post jquery-mobile is-empty

我遇到了JQuery Mobile(对我来说很新)和AJAX调用的问题。我正在使用以下代码:

$.ajax({
            type: "POST",
            url: "http://**correct url**/post/todoitem",
            beforeSend: addHeaders,
            dataType: "json",
            contentType: "application/json",
            data: { "todoitem":"test" }, // this is just as a test
            success: function(result) {
                alert("Success: " + JSON.stringify(result));
            },
            error: function() {
                alert("Error: " + JSON.stringify(arguments));
            }
        });

执行此操作时,它调用PHP脚本,我需要来自todoitem的数据,所以在这种情况下字符串“text”(最后,要发送多个变量,但是现在我只是使用一个简单的参数)。

我的PHP代码看起来像这样(也仅用于测试目的):

echo json_encode($_POST));

结果是:没有,null。 $ _POST似乎是空的。我搜索并尝试了很多东西,但大多数答案(甚至在stackoverflow上)都是关于表单的,人们说我需要序列化表单的内容。但是,我根本没有使用表格。

我也试过

data: JSON.stringify({ "todoitem" : "test" })

正如一些人的建议,但这也不起作用。 我知道数据正在被转移,因为我试过这个小小的PHP黑客:

echo file_get_contents('php://input');

确切地显示了数据:todoitem = test。那一切都出错了?我正在研究这几天了! Thnx提前

1 个答案:

答案 0 :(得分:3)

问题在于您的代码的这一部分:

contentType: "application/json",`

删除该行应使发送的Content-Type标头默认为application/x-www-form-urlencoded,PHP会将请求解码为$_POST