使用角度js进行Ajax调用

时间:2015-12-09 12:10:06

标签: php angularjs ajax

我是一个新的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文件根本没有收到电子邮件值。

5 个答案:

答案 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)

data: $.param({
    email:$scope.user.email
})

或者这样:(修改php)

Angular HTTP post to PHP and undefined

答案 4 :(得分:0)

我刚刚在php文件中找到了

  

$ _ POST或$ _GET无法接收数据。   使用以下内容:

$data = file_get_contents("php://input");
$objData = json_decode($data);
$email = $objData->email;

就我而言,它有效。