2017-08-02 72 views
2

我试图通过使用$ AngularJS做了Web 2.0 API调用不工作http.post返回JSON和怪异,因为这可能听起来,这一个小时前的工作,现在它不,我没有改变一件事。该应用程序继续在所有其他浏览器中工作,它只是在Edge中失败。

var _login = function (loginData) { 
     var data = ""; 
     var grant = [insert data to authorise user on server]; 
     var deferred = $q.defer(); 
     $http.post(serviceBase + 'token', data, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }).success(function (response) { 
      _userlogin(response); 
      deferred.resolve(response); 
     }).error(function (err, status) { 
      console.log(err + " " + status); 
      _logOut(); 
      deferred.reject(err); 
     }); 
     return deferred.promise; 
    }; 

我不得不采取一些信息在那里,因为它的安全性信息,但功能应该是相同的,因此,从调试我知道,这是在应用程序绊倒。我也知道传入的logindata是有效的,并且我在REST客户端上尝试了相同的调用,并且工作正常,就像我之前提到的在没有任何其他主要浏览器(包括IE古怪)。

当该调用运行,前端角度进行以下操作:

$scope.authUser = function (username, password) { 
      var loginData = { userName: username, password: password, useRefreshTokens: login.useRefreshTokens} 
      authService.login(loginData).then(function (response) { 
       console.log(response); 
       sessionStorage.setItem("status", "User Logged In As: "); 
       sessionStorage.setItem("username", username); 
       global.template = "templates/dashboard.html"; 
       login.password = ""; 
      }, 
      function (err) { 
       console.log(err); 
       login.message = err.error_description; 
       $("#passwordError").modal(); 
      }); 
     }; 

应用程序停止在login.message = err.error_description;,因为它没有从API调用返回。错误是:网络错误0x2efd,由于错误00002efd,无法完成操作。并且无法获取未定义或空引用的属性'error_description'。

编辑:忘了提 - 应用程序工作时提琴手是开放的,捕获流量。这是最奇怪的部分。

+0

从代码中删除所有'console.log'。有时候,它解决了IE问题。 – Mistalis

+0

还没有破 - 两个错误是:无法获取未定义或空引用的属性'error_description'和网络错误0x2efd,由于错误00002efd无法完成操作。 –

+0

我不确定,但可能与您的标题有关的问题。只需将它们更改为application/json并检查(确保问题仍然存在)。在我的应用程序中,http现在可以正常工作。 – Vitalii

回答

1

看看this后,其使用的方案中提到here。他们说这个问题是在localhost和localhost之间进行交互。

我很高兴能够提供帮助。