0

我的客户端中有以下 Request.JSON(注意使用 MooTools 自己的 JSON 解析器转换为 JSON 字符串):

var data = {action: 'delete', data: { id: item} };
data = JSON.encode(data);

var aRequest = new Request.JSON({
                onSuccess : (function(json) {
                    ...
                }).bind(this),
                onFailure : (function(e) {
                    ...
                }).bind(this),
                onError : (function(text, error) {
                    ...
                }).bind(this),
                url : "../sd_delete.php",
                method : "post",
                data: data,
                urlEncoded: false
            });
    aRequest.setHeader('Content-Type', 'application/json; charset=utf-8');
    aRequest.send();

现在,在服务器端,$_REQUEST 和 $_POST 都是空数组。如何访问使用 Request.JSON 发送的字符串?还是我的客户端方法有缺陷?

谢谢

编辑:刚刚发现,即使我将数据作为对象发送(没有 JSON.encode),服务器端也没有 POST 数据。GET 工作。可能是服务器端的问题?!

4

2 回答 2

2

data选项应该是一个对象。尝试:

        new Request.JSON({
            onSuccess : (function(json) {
                ...
            }).bind(this),
            onFailure : (function(e) {
                ...
            }).bind(this),
            onError : (function(text, error) {
                ...
            }).bind(this),
            url : "../sd_delete.php",
            method : "post",
            data: { anyname: data },
            urlEncoded: false
        });
于 2012-10-15T20:17:25.430 回答
1

以下应该工作。

var data = {action: 'delete', data: { id: item} };

var aRequest = new Request.JSON({
    url : "../sd_delete.php",
    onComplete: function(pResponse) {
        console.log(pResponse);
    }.bind(this)
}).post(data);

然后,您将在 php 中收到如下发布数据:

echo $_POST['action'];
于 2012-11-01T01:33:04.827 回答