我知道有很多重复的问题。我尝试了那里给出的所有解决方案,但仍然无法正常工作。
XMLHttpRequest无法加载http://localhost:3000/api/create。在飞行前响应中,Access-Control-Allow-Headers不允许请求标头字段Access-Control-Allow-Headers。
angularjs代码
$httpProvider.defaults.headers.common = {};
$httpProvider.defaults.headers.post = {};
$httpProvider.defaults.headers.put = {};
$httpProvider.defaults.headers.patch = {};
$httpProvider.defaults.headers.get = {};
$httpProvider.defaults.headers.common['Access-Control-Allow- Headers'] = '*';
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
$httpProvider.interceptors.push(['$injector',function($injector) {
var mainFactory = $injector.get('mainFactory');
return {
request: function(config) {
var token = mainFactory.getToken();
config.headers.Authorization = 'Basic '+token;
return config;
},
response: function(response) {
return response;
}
};
}]);
nodejs代码
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header('Access-Control-Allow-Methods','GET,PUT,POST,DELETE,OPTIONS');
res.header('Access-Control-Allow-Headers','Content-Type,Authorization');
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Accept");
next();
});
最佳答案
感谢您的评论。我通过安装npm软件包cors修复了它。我认为错误是在服务器端出现的,例如@ Katana314。
$httpProvider.defaults.headers.common = {};
$httpProvider.defaults.headers.post = {};
$httpProvider.defaults.headers.put = {};
$httpProvider.defaults.headers.patch = {};
$httpProvider.defaults.headers.get = {};
$httpProvider.defaults.headers.common['Access-Control-Allow-Headers'] = '*';
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
所有这些默认标头也可以删除。