我正在使用Angular Js中的登录表单.HTML和验证部分工作正常。
问题是当我使用HTTP POST方法将数据发送到我的servicecall PHP页面并希望将其保存到数据库时。
我已经通过在JS
中设置它一直尝试过headers: {'Content-Type': 'application/x-www-form-urlencoded'}
我尝试过将表单的enctype设置为
enctype="application/x-www-form-urlencoded"
同样。但是他们都没有工作我无法通过$ _REQUEST,$ _POST,$ _GET这些方法获取数据。
我也尝试过使用PHP库函数。
$postdata = file_get_contents("php://input");
但它提供了一些奇怪的字符串,我无法处理,因为POST
数据的数量可能是数百。
所以这还有其他方法来解决问题。
http
请求的代码是
var req = {
method: 'POST',
url: 'servicecall.php',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
data: {
username: $scope.loginData.username,
password: $scope.loginData.password,
action : 'checkLogin'
} //First way of sending data
//Second way of sending data which is also not working
//data: "{username:"+$scope.loginData.username+",password:"+$scope.loginData.password+",action:checkLogin}"
}
$http(req).then(function(response){
console.log(response);
}, function(response){
alert("Error "+response);
});
在PHP页面我做
print_r($_REQUEST);
print_r($_POST);
但它只打印像array{}
答案 0 :(得分:1)
遵循我用于相同目的的代码。希望对您有所帮助。
var app = angular.module('angularApp', []);
app.controller('loginCtrl', function ($scope, $http) {
$scope.login = function () {
var request = $http({
method: "post",
url: "login.php",
data: {
email: $scope.email,
password: $scope.password
},
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
});
/* Successful HTTP post request or not */
request.success(function (data) {
if(data == "1"){
$scope.responseMessage = "Successfully Logged In";
}
else {
$scope.responseMessage = "Username or Password is incorrect";
}
});
}
});