1. 概述
我们在《http请求中的 OPTIONS 详解 & 跨域》一文介绍跨域处理办法时,在 ”2.1.3.2 对于非简单请求(带options请求)“ 章节中提到统一设置Respose Headers的方法,这里单独提出来,做个笔记。
2. 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')
//这段仅仅为了方便返回json而已
res.header("Content-Type", "application/json;");
if(req.method == 'OPTIONS') {
//让options请求快速返回
res.sendStatus(200);
} else {
next();
}
});
与原文相比,这里对于OPTIONS请求提前返回了,因为这个请求作用只是让客户端从服务器端获取返回的Respose Headers 判断是否包含跨域参数,没有后续操作;
如果是个正常的get操作,比如 查询商品列表,你就必须让你进入处理链的下游继续处理!
但是要注意的一点是,这段代码需要放在路由前面。