AngularJS $ http.post在成功回调时返回一个空变量

时间:2016-01-01 17:50:16

标签: javascript php angularjs

在我的角度应用程序中,我试图将数据发送到php脚本然后返回回调。

这是角度代码:

var data = { value: 'somestring' };

$http.post("post_backend.php", data).success(function(data, status) {
    alert(data + status);
}).error(function(data, status) {
    alert(data + status);
});

在我的PHP代码中,我有一个简单的回调函数:

if (isset($_POST['value'])) {
    header('Content-Type: application/json');
    echo json_encode('successful callback');
    exit();
}

但是当它执行时,我会在警报消息中获得成功状态,而不是其他任何内容。 我没有得到数据('成功回调')并且无法弄清楚大约几个小时,问题是什么?

3 个答案:

答案 0 :(得分:1)

此代码适用于我。

$params = json_decode(trim(file_get_contents('php://input')), true);
if (isset($params['value'])) {
    header('Content-Type: application/json');
    echo json_encode(['status'=>'successful callback']);
    exit();
}

答案 1 :(得分:1)

我找到了答案。我不得不重新配置我将数据发送到PHP脚本的方式。我发现这篇非常有用的文章:How can I post data as form data instead of a request payload?

我必须实现jquery并将标头添加到我的请求中。在PHP脚本中我除了if语句和echo之外不需要任何东西。

答案 2 :(得分:0)

尝试使用响应正确的JSON,例如echo json_encode(['status'=>'成功回调']);