我在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