Express | CORS解决跨域问题

195 阅读1分钟

在命令行使用 npm i cors命令安装相关代码包

CORS响应头部

Access-Control-Allow-Origin

  • 在响应头部中携带一个Access-Control-Allow-Origin字段,语法如下:Access-Control-Allow-Origin: <origin> | *,参数可以指定为具体域名。

    指定域名:
    res.setHeader('Access-Control-Allow-Origin','http://127.0.0.1:8080')

Access-Control-Allow-Headers

  • CORS默认仅支持客户端向服务器发送9种请求头。
    • Accept
    • Accept-Language
    • Content-Language
    • DRP
    • Downlink
    • Save-Data
    • Viewport-Width
    • width
    • Content-Type(text/plain、multipart/form-data、application/x-www-form-urlencoded)
  • 如果客户端需要使用额外的请求头,则需要在服务器端通过Access-Contorl-Allow-Headers对额外的请求头进行声明,否则该次请求会失效。

    res.setHeader('Access-Contorl-Allow-Headers','额外请求头[多个请求头用逗号分隔]')

Access-Control-Allow-Methods

  • 默认情况下,CORS仅支持客户端发起GET、POST、HEAD请求。
  • 如果客户端希望发起其他请求,则需要在服务端使用Access-Control-Allow-Methods来指定实际请求所允许使用的HTTP方法。
    //允许指定请求方法
    res.serHeader('Access-Control-Allow-Methods','POST,GET,HEAD,DELETE');
    //允许所有请求方法
    res.serHeader('Access-Control-Allow-Methods','*');