我是一个新的Angularjs用户。我遇到了一个问题,当我提交注册表单时,我已经使用AngularJs进行了验证。同时如果所有输入字段都有效,那么我已经发送$ http Ajax调用来检查电子邮件地址,已经存在与否。问题是我的php文件没有收到电子邮件数据。
$http({
method : 'POST',
async: false,
url: 'http://localhost/angular/signup/emailcheck.php',
data: { email: $scope.user.email }, // pass in data as strings
headers : { 'Content-Type': 'application/x-www-form-urlencoded' } // set the headers so angular passing info as form data (not request payload)
})
.success(function(data)
{
$scope.info = data;
if($scope.userForm.$valid && $scope.info === '0') {
alert('our form is amazing' + $scope.info);
}
else{
alert('Already exist');
}
}).error(function(response,status)
{
console.log('ERROR HERE'+ status);
});
我的Php文件代码:
$email = $_POST['email'];
$sql = "SELECT * FROM user where username = '".$email."'";
$result = mysql_query($sql);
//fetch tha data from the database
while ($row = mysql_fetch_array($result)) {
....
....
....
....
....
}
我已经检查过,发现php文件根本没有收到电子邮件值。
答案 0 :(得分:1)
$http({
method : 'POST',
async: false,
url: 'http://localhost/angular/signup/emailcheck.php',
data : $.param($scope.user), // this will definitely wor
headers : { 'Content-Type': 'application/x-www-form-urlencoded' } // set the headers so angular passing info as form data (not request payload)
})
.success(function(data)
{
$scope.info = data;
if($scope.userForm.$valid && $scope.info === '0') {
alert('our form is amazing' + $scope.info);
}
else{
alert('Already exist');
}
}).error(function(response,status)
{
console.log('ERROR HERE'+ status);
});
答案 1 :(得分:1)
尝试从网址中删除http://localhost,然后看到它可能是CORS。
答案 2 :(得分:0)
只是一个猜测:你的网址指向localhost但没有端口号,这很不寻常,也许你忘了它?
答案 3 :(得分:0)
答案 4 :(得分:0)
我刚刚在php文件中找到了
$ _ POST或$ _GET无法接收数据。 使用以下内容:
$data = file_get_contents("php://input");
$objData = json_decode($data);
$email = $objData->email;
就我而言,它有效。