Javascript 不在铬合金中工作

Javascript 不在铬合金中工作,javascript,angularjs,google-chrome,Javascript,Angularjs,Google Chrome,我有一个在Firefox、IE、Safari和Chrome中运行良好的应用程序。但在Chrome中,当下面的控制器运行时,它停止工作。不工作是指$auth.login(user\u info)执行承诺中的代码后失败。例如,如果呼叫成功返回,应用程序将停止工作。当你点击任何链接时,什么都不会发生$location.path(lpath)应该转到主页,但它没有,toastr.success(“登录成功”);应显示一条消息,但仅显示一个白色弹出窗口 如果我使用Chrome.exe运行Chrome——禁

我有一个在Firefox、IE、Safari和Chrome中运行良好的应用程序。但在Chrome中,当下面的控制器运行时,它停止工作。不工作是指$auth.login(user\u info)执行承诺中的代码后失败。例如,如果呼叫成功返回,应用程序将停止工作。当你点击任何链接时,什么都不会发生$location.path(lpath)应该转到主页,但它没有,toastr.success(“登录成功”);应显示一条消息,但仅显示一个白色弹出窗口

如果我使用Chrome.exe运行Chrome——禁用web安全性,那么一切都会正常工作。有人有什么建议吗

angular.module("MyApp")
  .controller("LoginCtrl", function($rootScope, $scope, $location, $auth, toastr) {
    var lpath = "/home";
    $scope.login = function() {
      var user_info = { email:$scope.user.email, password:hex_sha512($scope.user.password)} ;
      $auth.login(user_info)
        .then(function(response) 
        {
          if(response.data.rtn == "true") 
          {
            $location.path(lpath);
            toastr.success("Login Success");
          } 
          else 
          {
            toastr.error(response.data.msg);  
          }
        })
        .catch(function(response) 
        {
          toastr.error("Host Login Error!");
        });
    };

  });


  $auth.login = function(user, opts) {
      opts = opts || {};
      opts.url = config.baseUrl ? utils.joinUrl(config.baseUrl, config.loginUrl) : config.loginUrl;
      opts.data = user || opts.data;
      opts.method = opts.method || 'POST';

      return $http(opts).then(function(response) {
        shared.setToken(response);
        return response;
      });
    };

    Shared.setToken = function(response) {
      var accessToken = response && response.access_token;
      var token;

      if (accessToken) {
        if (angular.isObject(accessToken) && angular.isObject(accessToken.data)) {
          response = accessToken;
        } else if (angular.isString(accessToken)) {
          token = accessToken;
        }
      }

      if (!token && response) {
        var tokenRootData = config.tokenRoot && config.tokenRoot.split('.').reduce(function(o, x) { return o[x]; }, response.data);
        token = tokenRootData ? tokenRootData[config.tokenName] : response.data[config.tokenName];
      }

      if (!token) {
        var tokenPath = config.tokenRoot ? config.tokenRoot + '.' + config.tokenName : config.tokenName;
        throw new Error('Expecting a token named "' + tokenPath + '" but instead got: ' + JSON.stringify(response.data));
      }

      storage.set(tokenName, token);
      storage.set(emailName, response.data.email);
      storage.set(permsName, response.data.permissions);

    };

发布作为答复,因为我没有代表

我想说的是,它不是在这个代码中,而是在您的控制器中。您是否尝试删除代码,直到它正常工作

您确定它通过了并且令牌有效吗?尝试清除缓存CTRL-SHIFT-END。您可能遇到了一些需要有效令牌的代码,但无法继续,因为您没有捕获失败的案例


答案(来自托尼):似乎是字符串中的句点导致了这个问题。如果我去掉句号,效果会很好

您能否显示
setToken()
的代码?控制台中的任何消息似乎都是CORS问题。我添加了setToken()的代码。控制台中没有消息。是的,谢谢回复。保存以下字符串时失败的是localStorage.setItem():“EYJ0Exiaioijkv1qilcjHbgChiijiuzi1nij9.EYJpZci6ijiiijijijijijjijjizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizizi“字符串中的句点似乎导致了问题。如果我删除了句号,效果很好。冷静-请投票给我,我需要50个代表,这样我可以添加评论。