javascript - AngularJs 发布请求获取错误

标签 javascript php angularjs

我正在尝试通过 angular js 向登录 api 发出 POST 请求。

<form method="post" ng-submit="doLogin()">
      <div class="list">
        <label class="item item-input">
          <span class="input-label">Username</span>
          <input type="text" ng-model="loginData.user_mail">
        </label>
        <label class="item item-input">
          <span class="input-label">Password</span>
          <input type="password" ng-model="loginData.password">
        </label>
        <label class="item">
          <button class="button button-block button-positive" type="submit" >{{loginTxt}}</button>
        </label>
      </div>
      </form>

Controller.js

$scope.doLogin=function(){
     $http({
          method  : 'POST',
          url     : 'http://examplemns.com/customer/api/v1/login/login',
          data    : $scope.loginData, //forms user object
          timeout:20000
         })
         .success(function(response){
             
              alert(JSON.stringify(response));
           })
           .error(function(err){
                console.log(JSON.stringify(err));
                alert("Network error");
                
             });
         }

但即使用户名和密码正确,我也会收到 invalid username 响应。 我通过 postman 插件检查了 api,它工作正常,但是当带有 Angular 时,我将变得无效。

这是示例输入

user_mail:avm@gmail.com
password:123456

当尝试使用 postman 插件输入时,我会得到正确的响应

{
  "status": 1,
  "message": "Done",
  "data": {
    "name": "A.V.M TOURIST HOME",
    "username": "avm@gmail.com",
    "id": "37",
    "key": "cos4ok88woo0kcw40cog0s4gg4skogscso8848ok"
  }
}

但是当尝试使用相同的输入通过 angularjs post i 时,我会得到这个响应

{"status":0,"message":"Invalid username"}

请帮帮我:(

更新

我需要将我的数据转换为 application/x-www-form-urlencoded 而不是 json(来自评论),因为我是这样使用的。

var data= {user_mail:$scope.loginData.user_mail,password:$scope.loginData.password};
$http({
              method  : 'POST',
              url     : 'http://examplemns.com/customer/api/v1/login/login',
              data    : data, 
              timeout:20000
             })
             .success(function(response){
                 
                  alert(JSON.stringify(response));
               })
               .error(function(err){
                    console.log(JSON.stringify(err));
                    alert("Network error");
                    
                 });

但我还是会得到同样的结果

postman 的请求和响应截图

enter image description here

最佳答案

试试这个

    $scope.loginData = {};
    $scope.doLogin=function(){

         $http({
              method  : 'POST',
              url     : 'http://examplemns.com/customer/api/v1/login/login',
              data    : $scope.loginData, //forms user object ,
              headers: {'Content-Type': 'application/x-www-form-urlencoded'}

             })
             .success(function(response){
                  console.log(response);
             })
             .error(function(err){
                    console.log(err);
              });
            }

$scope.loginData = {};
var data = $scope.loginData;
$http.post('/examplemns.com/customer/api/v1/login/login', data).then(successCallback, errorCallback);

也试试这个

  <input type="text" ng-model="user_mail">
  <input type="password" ng-model="password">

  var data = {};
  data.user_mail = $scope.user_mail;
  data.password = $scope.password;

  $http.post('/examplemns.com/customer/api/v1/login/login',   data).then(successCallback, errorCallback);

关于javascript - AngularJs 发布请求获取错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37304138/

相关文章:

javascript - 如何在深度未知的数组内递归构建子数组的路径

javascript - 来自rest api的图像/png响应未在浏览器中显示

javascript - 我应该在每个页面的 ASP.net MVC 应用程序中的什么位置放置 "ng-app"指令?

javascript - 从附加按钮调用时不弹出 jquery 对话框

javascript - 两名服务人员排成一列

PHP 两个同名方法

php - (CentOS 6)通过crontab运行Artisan命令导致Reflection异常

PHP/MySQL - 其中列不是 0/NULL

javascript - AngularJs:在指令之间共享模型数据

javascript - AngularJS 的新手 : Trying to make a directive and using it via a comment in the HTML