Angularjs $ http帖子没有通过param?

时间:2015-03-21 00:46:41

标签: php angularjs

我已经调试了好几个小时。试图设置标题等但没有运气!

我的控制器

 $http({
    url: 'http://myphp.php/api.php',
    method: "POST",
    data: {'wtf':'test'}
})
.then(function(response) {
        console.log(response);
    }, 
    function(response) { // optional
        // failed
    }
);

和我的php

<?php
echo "test"; 
echo $_POST["wtf"];
?>

在我的网络标签中,这就是它的样子

enter image description here

不确定那个错误的男人,真的很累,我被困了好几个小时!为什么我的$ _POST [&#39; wtf]没有回音?

2 个答案:

答案 0 :(得分:0)

$ http在请求正文中将数据序列化为JSON,但PHP的$ _POST正在寻找从发布的表单数据中解析的键/值。这是发布数据的两种不同机制,因此您需要选择一种并在两端使用该机制。

您有两种方法可以解决此问题:

  1. 在PHP代码中,将请求正文解析为JSON数据,然后使用该对象检索数据。有关详细信息,请参阅this StackOverflow问题。

  2. 修改$ http请求以将数据作为表单数据发布。有关详细信息,请参阅this StackOverflow问题。

答案 1 :(得分:0)

$ http.post(默认情况下)不会将数据作为键/值对发送。它以邮寄请求的形式发送。

因此,在你的php脚本中你应该像这样使用它:

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

然后解析它:

$data = json_decode($input, true);