WEIC`S BLOG

Node.js解决跨域问题

学习笔记

设置HTML头的方法不是很有效(不通用),所以需要在服务端处理一番;

Express 框架

有个现成的中间件Cors,下面只是简单的例子,详细请看Github

1.安装

npm install --save express cors

2.使用

var express = require('express')
var cors = require('cors')
var app = express()

app.use(cors())

app.get('/', function (req, res) {
  res.json({
      title: 'Cors',
      msg: 'HI! I'm Cors!'
  })
})

app.listen(8080)

Koa 框架

Koa框架也是有Cors中间件的

1.安装

npm install @koa/cors@2 --save

2.使用

const Koa = require('koa');
const cors = require('@koa/cors');

const app = new Koa();
app.use(cors());

其他方法

1.通过设置HTML Header的方法解决跨域,仅在Express框架中使用过

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', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild');
    res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');

    if (req.method == 'OPTIONS') {
        res.send(200); 
    }
    else {
        next();
    }
});

app.get('/', function (req, res) {
  res.json({
      title: 'Cors',
      msg: 'HI! I'm Cors!'
  })
})

app.listen(8080)

2.Nginx方法

在网站配置文件里加入

location / {
    add_header Access-Control-Allow-Origin *;
}
加载评论
打赏本文
二维码