NodeJS+Express模块的跨域访问控制问题

来源:互联网 发布:职业调查报告网络调研 编辑:程序博客网 时间:2024/05/16 14:53

在一个项目上想用NodeJS,所以边学边练。第一个遇到的问题就是跨域访问控制问题。很多初学者会遇到同样问题。

问题

在前端的JS(http://localhost/xxx)中ajax访问后端RestAPI(http://localhost:3000/….)时(Chrome)报错:

XMLHttpRequest cannot load http://localhost:3000/auth/xxx/xxx. Origin http://localhost is not allowed by Access-Control-Allow-Origin.

方案

解决代码如下:

var express = require('express');var app = express();//设置跨域访问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","PUT,POST,GET,DELETE,OPTIONS");    //res.header("X-Powered-By",' 3.2.1')    //res.header("Content-Type", "application/json;charset=utf-8");    next();});app.get('/auth/:id/:password', function(req, res) {    res.send({id:req.params.id, name: req.params.password});});app.listen(3000);console.log('Listening on port 3000...');
0 0
原创粉丝点击