2017-05-31 101 views
1

我在调用Web服务时遇到了AngularJS中的CORS请求问题,但是可以使用jQuery调用相同的服务。如何在AngularJS中处理CORS请求

注意:从服务器端我们正在接收标头“访问控制 - 允许来源:*”并且这些服务在jQuery应用程序中运行良好。

在这里,我发布我的AngularJS代码以及jQuery代码。

AngularJS:

$http({ 
     method: 'POST', 
     url: $rootScope.host + "UserLogin", 
     //headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, 
     data: { 
      "uname": $scope.uname, 
      "password": $scope.password 
     }, 
    }).then(function (success) { 
       $scope.loginDetails = success; 
       console.log($scope.loginDetails); 
    }),function (error){ 
      console.log(error); 
}); 

如果我传似headers: { 'Content-Type': 'application/x-www-form-urlencoded' }能ping服务的头,但我的要求是不是以JSON格式去。

如果我改变头'Content-Type': 'application/json',越来越

的XMLHttpRequest无法加载https://XXXX.XXXX.in/XXXXAPI/UserLogin

响应预检请求未通过访问控制检查:

否“访问控制允许来源”标题存在于所请求的资源。因此不允许访问原产地'http://170.11.0.61'。

我不知道这个错误的原因是什么。

$.ajax({ 
    url: BASE_URL + "UserLogin", 
    type: "POST", 
    xhrFields: {withCredentials: true}, 
    data: { 
     "uname": uname, 
     "password": password 
    }, 
    cache: false, 
    success: function (result, textStatus, request) { 
     console.log(result); 
    }, 
    error: function (e) { 
     console.log("Error in login service call:"+JSON.stringify(e)); 
    } 
}); 

这个jQuery发送我的请求在json格式。

回答

0

试图通过头部像

headers: { 'Content-Type': 'application/json' } 
+0

如果我改变了我的头,我的服务电话没有ping服务器,并显示“的XMLHttpRequest无法加载https://XXXX.XXXX.in/XXXXXAPI/UserLogin。响应预检请求未通过访问控制检查:请求的资源上没有“访问控制 - 允许 - 来源”标头,因此不允许Origin'http://172.16.0.61'访问。 – srihari