我在Angular Js中尝试使用$ http.post()发布数据时遇到此错误。

跨域请求被阻止:同源策略禁止读取{{post url}}处的远程资源。可以通过将资源移到同一域或启用CORS来解决此问题。

这是我的代码:

var ionicAppControllers = angular.module('ionicAppControllers', []);

ionicAppControllers.config(function($httpProvider) {
    //Enable cross domain calls
    $httpProvider.defaults.useXDomain = true;

    //Remove the header containing XMLHttpRequest used to identify ajax call
    //that would prevent CORS from working
    delete $httpProvider.defaults.headers.common['X-Requested-With'];
});


ionicAppControllers.controller('createItemCtrl', ['$scope', '$http',
    function($scope, $http) {
        $scope.parts = [];

        $scope.add = function() {
            $scope.parts.push({
                id: '',
                code: '',
                description: ''
            });
        };
        $scope.submitItemForm = function(isValid) {
            if (isValid) {
                $scope.postdata = {};
                $scope.postdata.item = $scope.item;
                $scope.postdata.description = $scope.description;
                for (var i in $scope.parts)
                {
                    for (var j in $scope.parts[i])
                    {
                        if (j == '$$hashKey')
                        {
                            delete($scope.parts[i][j]);
                            //console.log(j);
                        }
                    }
                }
                $scope.postdata.parts = $scope.parts;
                console.log($scope.postdata);
                $http({
                    method: 'POST',
                    url: 'URL',
                    data: $scope.postdata, // pass in data as strings
                    headers: {'Content-Type': 'application/json'}
                }).success(function(data) {
                    if (data.success)
                    {
                        alert('sucess');
                    }
                    else
                    {
                        alert('fail');
                    }
                });
            }
        };
        $scope.add();
    }]);

最佳答案

这与Angular无关。 Server应用程序应启用或允许从托管在任何计算机上运行的Angular应用程序生成的请求。如果您在本地主机上运行您的应用程序。对铬使用CORS扩展名。如果来自其他服务器。让我们说www.example.com。

在前端透视图中,必须对服务器代码进行任何更改。

请参考此链接。
http://enable-cors.org/server.html

07-24 09:51
查看更多