首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CORS的Satellizer登录错误密码

CORS的Satellizer登录错误密码
EN

Stack Overflow用户
提问于 2015-07-16 11:33:26
回答 2查看 750关注 0票数 1

我正在尝试实现卫星的本地注册和签署的例子。注册(注册)工作(虽然它在使用POST进行请求之前使用选项方法“提前”发送请求)。

现在,问题是当我尝试登录时,我得到了一个400,网络选项卡告诉我我使用了“选项”。我看过这里几乎所有的问题,他们建议我在服务器端设置我的权限。

因此,以下内容已添加到服务器端,以允许任何请求

代码语言:javascript
复制
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers "Authorization"

但我还是会犯同样的错误。

这是我的登录控制器,在一个模式中:

代码语言:javascript
复制
angular.module('auth').controller('LoginCtrl',function($rootScope, 
  $scope, $location, $localStorage, $auth, $modalInstance, 
  $modal){

  $scope.formData = {

   email:'',
   password:'',


  };

  $scope.master = {};

    $scope.update = function(user) {
      $scope.master = angular.copy(user);

    };

    $scope.reset = function(form) {
      if (form) {
        form.$setPristine();
        form.$setUntouched();
      }
      $scope.user = angular.copy($scope.master);
    };

  $scope.reset();

  $scope.ok = function () {
    $modalInstance.close();
  };

  $scope.cancel = function () {
    $modalInstance.dismiss('cancel');
  };


$scope.login = function(){

   $auth.login({
      email: $scope.formData.email,
      password: $scope.formData.password,
      grant_type: 'password'
  }).then(function(res){
      alert('success, WELCOME ' + res.data.user.email + '!')
  }) .catch(function(err){
        alert(err.message)
  });
};


});

这是我的app.js:

代码语言:javascript
复制
angular.module('app').config(function($stateProvider, $urlRouterProvider,
     $authProvider, 
    $httpProvider, urls) {

    /* Add New States Above */
    $urlRouterProvider.otherwise('/home');

    $authProvider.signupUrl = urls.BASE_API + '/Register';
    $authProvider.loginUrl = urls.BASE + '/Token';

});

有人能帮忙吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-28 18:09:50

直接编辑local.login和local.signin函数的satllizer.js完成了以下工作:

代码语言:javascript
复制
 local.login = function(user, redirect) {
      var loginUrl = config.baseUrl ? utils.joinUrl(config.baseUrl, config.loginUrl) : config.loginUrl;
      return $http.post(loginUrl, $.param(user), { headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'Accept':'*/*'}})
        .then(function(response) {
          shared.setToken(response, redirect);
          return response;
        });
};

    local.signup = function(user) {
      var signupUrl = config.baseUrl ? utils.joinUrl(config.baseUrl, config.signupUrl) : config.signupUrl;
return $http.post(signupUrl,  $.param(user), { headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'Accept':'*/*'}})
        .then(function(response) {
          if (config.loginOnSignup) {
            shared.setToken(response);
          } else if (config.signupRedirect) {
            $location.path(config.signupRedirect);
          }
          return response;
        });
    };

基本上将以下内容附加到$http.post(loginUrl,$.param(用户)):

代码语言:javascript
复制
$.param(user), { headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'Accept':'*/*'}}
票数 1
EN

Stack Overflow用户

发布于 2017-01-27 19:58:03

在使用satilizer配置之前,在角js配置中使用以下配置行:

代码语言:javascript
复制
 $authProvider.httpInterceptor = false;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31452994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档