[英]How can I use Angular $http to POST data to PHP
关于这个的很多话题,我保证我已经尝试了很多(整天)。
这是我的代码:
app.controller('contactsController', function($scope, $rootScope, dataService, $http) { $rootScope.currentPage = "contact"; $scope.postData = []; $scope.runScript = function() { $http({ url: "post.php", method: "POST", headers: {'Content-Type': 'application/x-www-form-urlencoded'}, data: $.param({postData:$scope.postData}) }).success(function(data, status, headers, config) { $scope.data = data; }).error(function(data, status, headers, config) { $scope.status = status; }); }; });
<form name="contactForm" method="post" ng-submit="runScript()"> <div class="col-sm-10"> <div class="input-group"> <span class="input-group-addon" id="basic-addon1">E-mail Address</span> <input ng-model="{{postData.email}}" name="email" class="form-control" placeholder="johnsmith@example.com" aria-describedby="basic-addon1" required> </div> <br> <div class="input-group"> <span class="input-group-addon" id="basic-addon1">Message</span> <textarea ng-model="{{postData.message}}" name="inputMessage" class="form-control"></textarea> </div> </div> <div class="col-sm-2"> <button type="submit" class="btn btn-default">Send</button> </div> </form> {{data}} and {{status}}
$inputData = file_get_contents("php://input");
$inputData = json_decode($inputData);
$email = $inputData->email;
echo $email;
现在,在尝试使此功能生效之前,我可能已经犯了一些错误-我没有收到任何错误,但也没有获得任何成功-我整天都在工作! ! 谢谢!
Angular以php本身不使用的JSON格式发布数据。 您将必须读取输入并对其进行json解码,如下所示:
// get the raw POST data
$inputData = file_get_contents("php://input");
// this returns null if not valid json
$inputData = json_decode($inputData);
我可能是错的,但如果仅使用POST,则应在_POST变量中找到数据。 仅在提交PUT请求时才需要使用file_get_contents(“ php:// input”)。
另外,您正在提交关键的postData,并且试图读取->电子邮件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.