gpt4 book ai didi

node.js - nodejs 和 AngularJS 的 CORS 问题

转载 作者:搜寻专家 更新时间:2023-10-31 22:58:38 24 4
gpt4 key购买 nike

出于某种原因,每当我尝试将一些数据发布到我的 api 服务器时,我都会收到以下两个错误。

OPTIONS http://localhost:3000/test2 Request header field Content-Type is not allowed by Access-Control-Allow-Headers. angular.min.js:99
XMLHttpRequest cannot load http://localhost:3000/test2. Request header field Content-Type is not allowed by Access-Control-Allow-Headers.

这是我的客户端 Angular JS 代码,试图发送一些简单的数据。此代码当前在位于 http://localhost:8080

下的 nginx 服务器上运行
function Controller($scope, $http) {
//scope is all of the elements within the controller declared on the html
var url = 'http://localhost:3000/test2';

$scope.listVaules = function () {
console.log("about to post user id");
console.log($scope.user.userId);
console.log($scope.user.name);
console.log($scope.user.password);
console.log(JSON.stringify($scope.user));
$http({ method: 'Post', url: url, data: JSON.stringify($scope.user) }).
success(function (data, status, headers, config) {
console.log(data);
console.log('success');
}).
error(function (data, status, headers, config) {
console.log('error');
});
};
}

这是我的 Node JS 代码来处理“处理”对 localhost:3000/test2

的请求
// CORS header securiy
app.all('/*', function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header("Access-Control-Allow-Headers", "X-Requested-With");
next();
});

//Should post client side json info to the server
app.post(url + '/test2', function(req, res) {
var name = req.body.name;
var userId = req.body.userId;
var password = req.body.password;

console.log(name + ' ' + userId + ' ' + password);
res.send(200);
});

最佳答案

如错误消息所述,您必须在对预检的响应中确认 Content-Type header 。这可能是由您的请求的非“简单”内容类型(表面上是 application/json)引起的。

所以,而不是这个:

res.header("Access-Control-Allow-Headers", "X-Requested-With");

...你需要这个:

res.header("Access-Control-Allow-Headers", "X-Requested-With, Content-Type");

关于node.js - nodejs 和 AngularJS 的 CORS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19867775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com