通过AJAX将JSON数组发布到php失败

时间:2016-12-13 12:59:00

标签: javascript php json ajax

我想通过ajax调用将JSON数组发送到Web服务PHP。我已经尝试了很多解决方案(这个问题的大多数建议的类似答案)没有线索。

我的JSON数组结构是:

var res= [{"id":-9007199254740990,
"NW":{"x":3.97,"y":5.83},
"SE":{"x":2.72,"y":3.53},
"NE":{"x":1.97,"y":8.83},
"SW":{"x":3.87,"y":4.83}}]

和处理请求的JavaScript函数如下:

send_json(res); //call function
function send_json(res)
{
  var myJsonString = JSON.stringify(res);
  console.info(myJsonString);
  $.ajax({
  url:"test.php", //the page containing php script
  type: "GET", //request type
  contentType: "application/json; charset=UTF-8",
  data: {data : myJsonString} ,
  success:function(result){
    //JSON version
    console.info(result);
    }
  });
}

php文件按如下方式处理请求:

<?php
if ($_SERVER['REQUEST_METHOD'] == 'GET')
{
  $data = json_decode(file_get_contents("php://input"));
  print_r($data);
}
?>

我还尝试将JSON作为键值发送 JS:

data: {data: myJsonString}

然后通过php收到它:

if(isset($_GET['data']))
{
echo json_decode($_GET['data']);
}

在没有线索的情况下,两次试验中的输出都是空的。

2 个答案:

答案 0 :(得分:1)

var res= [{"id":-9007199254740990,
"NW":{"x":3.97,"y":5.83},
"SE":{"x":2.72,"y":3.53},
"NE":{"x":1.97,"y":8.83},
"SW":{"x":3.87,"y":4.83}]

这是一个json对象的数组,而不是一个字符串 您可以传递json object

data:res,
type: "post",

现在在服务器上执行

print_r($_POST);

答案 1 :(得分:0)

如果您尝试将数据发送到服务器,请不要使用GET,而是使用post

type: "post",