PHP的$ _POST和$ _GET与AngularJS客户端之间的差异

pav*_*lag 0 php post json angularjs

我试图将JSON传递给AngularJS中的PHP脚本,如下所示:

var testObj = {
  answers : {
    aa : 2,
    ab : 3
  }
};

var userAnswers = angular.toJson(testObj.answers);

$http.post("ajax/testAddObject.php?answers=" + userAnswers).
success(function(data){
    console.log("Result: ", data);
});
Run Code Online (Sandbox Code Playgroud)

在PHP方面,我做了以下事情:

//... new PDO connection to DB
$answers = $_POST['answers'];

//some more stuff
Run Code Online (Sandbox Code Playgroud)

$answers变量总是空的.但随后几乎随机,我看到了这个问题,答案说:

$_POSTContent-Type: application/json在标题中传递时将为空

而且,虽然我的代码是不是完全一样从问题的人,我改变了$_POST[...]$_GET[...]上的PHP代码和它的工作!问题是,为什么?彼此之间有什么区别?因为,从我看来,似乎没有太大的区别......

zef*_*lex 7

$http.post("ajax/testAddObject.php?answers=" + userAnswers).

在这里,您将answers作为查询参数(GET)testAddObject.php发送到(而不是发布)(POST) - 注意?结尾处的参数testAddObject.php-

$ _GET数据作为URL中的参数传递.$ _POST不是.