Node.js和AngularJS中的CORS
我的应用程序有一个CORS问题。
我的堆栈是使用Express 4和使用Restangular的 AngularJS的Node.js
我已经尝试了一些东西( 例如 ),但我不断得到:
XMLHttpRequest cannot load http://localhost:8080/api/users. Request header field Content-Type is not allowed by Access-Control-Allow-Headers.
在服务器端我有这个标题:
app.all('/*', function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "X-Requested-With"); res.header("Access-Control-Allow-Methods", "GET, POST","PUT"); next(); });
在AngularJS部分我使用这个:
$httpProvider.defaults.useXDomain = true; delete $httpProvider.defaults.headers.common['X-Requested-With'];
我正在像这样做Restangular的职位:
var baseUsers = Restangular.all('users'); .... .... baseUsers.post(newUser).then(function(user){ console.log(user); });
还有一件事,在Node.js服务器上,我正在安装req.method
,它说OPTIONS
,我真的不知道为什么。
也许是愚蠢的东西,希望有人能帮助我。
谢谢!
更改 –
res.header("Access-Control-Allow-Headers", "X-Requested-With");
至
res.header("Access-Control-Allow-Headers", "X-Requested-With, Content-Type");
来源1
来源2
我发布相同的答案与详细的代码,因为我有一些问题,当我使用选定的答案。
在初始化app
对象后,只需拖动下面的代码即可
app.all('/*', function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "X-Requested-With, Content-Type"); res.header("Access-Control-Allow-Methods", "GET, POST","PUT"); next(); });
我希望这会更有帮助。