0

我在 Angular 中有一个工厂服务,它成功地将我的电子邮件发布到我已使用 Firebug 验证的 HTTP 请求中,但我的 PHP 文件没有看到该电子邮件。我正在访问我的 PHP 文件,因为我可以回显它的响应,但是正如我已经提到的那样,我发送它的电子邮件值没有被接收。

控制器(部分):

$scope.subscribe = function() {
        if($scope.email.length > 0) {
            Subscribe.save({},$scope.email);
        } else {
            alert("Please enter your email address");
        }
    }

工厂:

app.factory('Subscribe', ['$resource', function($resource) {
    return $resource( 'server/restdb.php:email', 
        {email: '@email'},
        {

        }
    ); 
}]);

PHP:

<?php
echo 'email: '.$_REQUEST['email'];

我也尝试过使用$_POST来获取电子邮件。

回顾一下:

  • 在 HTTP 请求中成功发布电子邮件。
  • 正在访问 PHP 文件并从中获取响应。
  • PHP 没有收到我发送的电子邮件值。
4

2 回答 2

1

尝试使用这个:

$aRequest = json_decode(file_get_contents("php://input"), true);
echo 'email: ' . $aRequest['email'];
于 2014-05-21T14:15:24.330 回答
0

哦, $resource.save 有点“奇怪”。

你应该这样使用它:

var myData = new Subscribe({email: $scope.email});
myData.save();

您可以将工厂简化为:

app.factory('Subscribe', ['$resource', function($resource) {
    return $resource( 'server/restdb.php', {}, {}
    ); 
}]);

多看一下文档:angular.js $resources

于 2014-05-21T14:21:59.327 回答