jQuery ajax发布请求不发送数据

时间:2018-02-08 08:58:57

标签: javascript php jquery json ajax

我使用jQuery ajax向我的php代码发送帖子请求,但它没有发送数据。

var uploadData = {
    'email': email
};
$.ajax({
  url: './upload.php',
  method: 'POST',
  dataType: 'json',
  data: uploadData,
  contentType: "application/json; charset=utf-8",
  success: function(data, status, xhr) {
    console.log(xhr.responseText);
    return(true);
  },
  error: function(data, status, xhr) {
    console.log(xhr.responseText);
    return(false);
  }
});

我尝试添加dataType:'json',contentType: "application/json; charset=utf-8",尝试更改帖子以获取,但没有任何更改。

enter image description here

4 个答案:

答案 0 :(得分:0)

我认为就是这样:

$.ajax({
  url: './upload.php',
  type: 'POST',
  dataType: 'json',
  data: {
    'email': 'test@gmail.com'
  },
  success: function(data) {
    return data;
  }
});

该代码适用于我。

答案 1 :(得分:0)

您可以使用以下方式获取纯请求有效负载:

$raw = file_get_contents('php://input');

然后你可以将它从json解码到数组:

$data = json_decode($raw, true);

并打印数组:

print_r($data);

答案 2 :(得分:0)

对于未来的Google员工,如果您试图通过post发送数组,并且已将数组初始化为

var blah = [];

尝试使其成为如下所示的对象,并查看其是否有效。

var blah = {};

答案 3 :(得分:-1)

首先,不需要JSON.stringify。

在$ .ajax调用中,配置对象"成员"方法"如果jquery版本是> = 1.9.0并且"键入"则使用用于旧版本。 (http://api.jquery.com/jquery.ajax/)以下是一个片段:

$.ajax({
    url: './upload.php',
    method: "POST", //**'type' if jquery v < 1.9.0 **
    dataType: 'json',
    data: {
        email: "test@gmail.com"
      },
    .....................
    ................
  });