0

我正在发出一个看起来像的 ajax 请求

 var object = JSON.stringify(object);
// var url = "http://"+baseURL +"/"+endpoint;

$.ajax({
    contentType: "application/json",
    dataType: 'json',
    type:type,
    data:object,
    url:endpoint,
    success:function(data){
        if (typeof callback == "function"){
            alert(data);
        }
    },

    error: function (xhr, textStatus, errorThrown) {
        console.log(xhr.statusText);
        console.log(xhr.responseText);
        console.log(xhr.status);
        console.log(errorThrown);
    }
});

var=object一个字符串化的 json 对象在它进入 ajax 请求时在哪里。在 php 方面,我试图通过做来捕捉变量

<?php
   echo ($_POST['object']);
   exit;
?>

并且我的成功回调函数将数据警报为“null”。我究竟做错了什么?

谢谢,亚历克斯

4

1 回答 1

1

跳过 json.stringify 您不希望将数据作为帖子正文中的 json 文本。要填充 post 数组,它需要以application/x-www-form-urlencoded. 要在 jquery 中执行此操作,只需将数据属性设置为对象而不是字符串。

// remove this.... var object = JSON.stringify(object);
// var url = "http://"+baseURL +"/"+endpoint;

$.ajax({
    dataType: 'json',
    type:"POST",  // <--- Should be post
    data:object,
    url:endpoint,
    success:function(data){
        if (typeof callback == "function"){
            alert(data);
        }
    },

    error: function (xhr, textStatus, errorThrown) {
        console.log(xhr.statusText);
        console.log(xhr.responseText);
        console.log(xhr.status);
        console.log(errorThrown);
    }
});

可以在您当前发送数据时获取数据,但您必须在 PHP 端完成更多工作。

$_POST = json_decode(file_get_contents("php://input"),true);
于 2013-07-29T18:57:31.643 回答