ndoejs中设置http响应跨域

本文介绍了如何在Node.js服务端设置HTTP响应以允许跨域访问,特别是在使用Express框架时。通过设置CORS,可以解决不同网络请求被拦截的问题。详细内容包括CORS的工作原理和相关HTTP头部的配置。
摘要由CSDN通过智能技术生成

在不同的网络中请求nodejs服务的时候,容易被拦截,为了防止这个问题,我们需要在nodejs服务端,设置一下跨域访问,设置跨域有两种方式。

第一种:在express()框架中

//app.js
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();
});
在进行网络请求的时候,有三种传值方式,其中的一种就是header传值方式,我为了做身份验证,就需要自己在header中放置一些信息。下面是我的设置的跨域方式,仅供参考:

//restAPI跨域访问
app.all('*', function (req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE");
    res.header("Content-Type", "application/json;charset=utf-8");
    res.header("X-Powered-By", ' 3.2.1');
    res.header('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, Authorization, code, name, password, idCard, id, startIndex, pageSize, sorting,startDate,endDate');
    next();
})
第二种:直接引入cors模块。在koa2框架中

使用方式:

npm install cors;

//app.js
var cors = require('cors');
app.use(cors());

我采用的是第一种方式;


详细:

var cors = require('cors');
//设置跨域访问
app.use(cors({
    'origin': '*',
    'expose': ['WWW-Authenticate', 'Server-Authorization'],
    'maxAge': 5,
    'credentials': true,
    'methods': ['GET', 'POST', 'DELETE'],
    'headers': ['Content-Type', 'Authorization', 'Accept']
}));
 

相关文章写的都挺不错,记录下来:

HTTP访问控制(CORS)

HTTP消息头(HTTP headers)

从原理分析CORS——我们到底是怎么跨域的




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值