如何在AngularJS中处理CORS请求

时间:2017-05-31 11:48:55

标签: angularjs web-services cors

我在调用Web服务时遇到AngularJS中的CORS请求问题但是同样的服务能够使用jQuery调用。

注意:从服务器端,我们收到标题" Access-Control-Allow-Origin:*" ,这些服务在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格式发送我的请求。

1 个答案:

答案 0 :(得分:0)

尝试传递

之类的标题
headers: { 'Content-Type': 'application/json' }