首页 > 其他分享 >cors_cors的安装与基本使用

cors_cors的安装与基本使用

时间:2023-10-03 23:23:43浏览次数:30  
标签:基本 function app express CORS cors var 安装

安装

npm install cors

简单使用(允许所有跨域请求)

var express = require('express')
var cors = require('cors')
var app = express()
 
app.use(cors())
 
app.get('/products/:id', function (req, res, next) {
  res.json({msg: 'This is CORS-enabled for all origins!'})
})
 
app.listen(80, function () {
  console.log('CORS-enabled web server listening on port 80')
})

允许单个路由的跨域请求

var express = require('express')
var cors = require('cors')
var app = express()
 
app.get('/products/:id', cors(), function (req, res, next) {
  res.json({msg: 'This is CORS-enabled for a Single Route'})
})
 
app.listen(80, function () {
  console.log('CORS-enabled web server listening on port 80')
})

跨域配置

var express = require('express')
var cors = require('cors')
var app = express()
 
var corsOptions = {
  origin: 'http://example.com',
  optionsSuccessStatus: 200 // some legacy browsers (IE11, various SmartTVs) choke on 204
}
 
app.get('/products/:id', cors(corsOptions), function (req, res, next) {
  res.json({msg: 'This is CORS-enabled for only example.com.'})
})
 
app.listen(80, function () {
  console.log('CORS-enabled web server listening on port 80')
})

跨域配置_白名单

var express = require('express')
var cors = require('cors')
var app = express()
 
var whitelist = ['http://example1.com', 'http://example2.com']
var corsOptions = {
  origin: function (origin, callback) {
    if (whitelist.indexOf(origin) !== -1) {
      callback(null, true)
    } else {
      callback(new Error('Not allowed by CORS'))
    }
  }
}
 
app.get('/products/:id', cors(corsOptions), function (req, res, next) {
  res.json({msg: 'This is CORS-enabled for a whitelisted domain.'})
})
 
app.listen(80, function () {
  console.log('CORS-enabled web server listening on port 80')
})
  • 如果你不想阻止REST 工具或者服务器对服务器的请求, 添加一个!origin用来检查域名
var corsOptions = {
  origin: function (origin, callback) {
    if (whitelist.indexOf(origin) !== -1 || !origin) {
      callback(null, true)
    } else {
      callback(new Error('Not allowed by CORS'))
    }
  }
}

允许预检请求跨域

var express = require('express')
var cors = require('cors')
var app = express()
 
app.options('/products/:id', cors()) // enable pre-flight request for DELETE request
app.del('/products/:id', cors(), function (req, res, next) {
  res.json({msg: 'This is CORS-enabled for all origins! '})
})
 
app.listen(80, function () {
  console.log('CORS-enabled web server listening on port 80')
})
  • 也可以允许所有的预检请求
app.options('*', cors()) // include before other routes

配置参数

origin:
	Boolean: 根据req.header('Origin')的值, 将这个值设定为true以允许请求的域名跨域, 或者设置为false禁用该域名的跨域
	String: 设置为特定的域名并允许该域名的跨域请求, 例如将其设置为'http://example.com'会允许该域名的跨域请求
	RegExp: 如果设置的正则表达式匹配请求域名, 那么允许该域名跨域
	Array: 允许跨域的域名组成的数组
	Function: 第一个参数是请求的域名, 回调函数作为第二个参数
methods:
	配置访问域名所允许的方法, 应为逗号分隔的字符串或数组, 例如'GET,PUT,POST'或者['GET','PUT','POST']
allowedHeaders:
	配置访问控制允许标头CORS标头。应为逗号分隔的字符串(例如:“Content Type,Authorization”)或数组(例如:[“Content Type”,“Authorization”])。如果未指定,则默认为反映请求的访问控制请求标头中指定的标头。
exposedHeaders:
credentials:
maxAge:
preflightContinue:
optionsSuccessStatus:
 
  • cors的默认配置

    • {
        "origin": "*",
        "methods": "GET,HEAD,PUT,PATCH,POST,DELETE",
        "preflightContinue": false,
        "optionsSuccessStatus": 204
      }
      

标签:基本,function,app,express,CORS,cors,var,安装
From: https://www.cnblogs.com/isAyi/p/17741800.html

相关文章

  • 【MacOs】 安装 MariaDB
    1安装MairaDB在MacOS的终端上执行如下命令就可以安装MariaDB:brewinstallmariadb 如果希望启动MariaDB服务器:brewservicesstartmariadb 这个命令也设置每次重新启动电脑,自动启动MariaDB服务。如果希望关闭MariaDB服务器,可以使用命令:brewservice......
  • 2.Maven安装与环境变量配置
    一、下载地址https://maven.apache.org/download.cgi 二、安装步骤1.解压文件2.我的电脑->系统变量->新建变量MAVEN_HOME= D:apache-maven-3.5.33.将系统变量MAVEN_HOME添加导path中选中path,新建值:%MAVEN_HOME%\bin三、验证是否安装成功win+r-->cmd-->输入命令:mvn ......
  • 1.Mavn基本概念
    一、项目jar包管理传统项目管理,jar包不统一,jar包不兼容,工程升级维护过程操作繁琐二、Maven是什么Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)POM(ProjectObjectModel):项目对象模型下图中红色部分为Maven三、Maven的作用项目构建:提......
  • python3 番外篇之pyenv安装python遇到的ssl问题
    最近在学爬虫,在Linux中通过pyenv安装3.9.10,安装时也没有问题,问题就出在安装完requests模块后,引用requests模块报错。(reptile)root@localhost:/data/reptile#pythonPython3.9.10(main,Aug102023,01:32:05)[GCC7.3.0]onlinuxType"help","copyright","credits"......
  • Centos安装Redis
    一、下载安装redis1.1新建文件夹redis,获取安装包wgethttp://download.redis.io/releases/redis-5.0.5.tar.gz11.2解压安装包tar-zxvfredis-5.0.5.tar.gz11.3进入解压后的文件目录使用make命令进行编译1.4进入src文件执行makeinstall安装redis1.5在src目录执行./redis......
  • stata 18 显示r603 不能安装外部命令 主要是设置文件夹的读写权限
    1.stata18安装位置的ado文件夹中新建plus personal ......
  • 【MacOs】 安装 Homebrew
    1首先需要安装CommandLineTools(CLT)forXcode在终端中输入命令,安装CommandLineTools(CLT)forXcodexcode-select--install2安装Homebrew 在终端输入以下几行命令设置环境变量,设定使用清华Homebrew镜像源:exportHOMEBREW_BREW_GIT_REMOTE="https://mirrors.......
  • 在linux服务器上安装scvi后无法调用GPU
    问题描述:WARNING-NoGPU/TPUfound,fallingbacktoCPU.(SetTF_CPP_MIN_LOG_LEVEL=0andrerunformoreinfo.) 解决方案: 测试如下代码,如果为True则执行第二步。importtorchprint(torch.cuda.is_available())测试如下代码importjaxprint(jax.devices......
  • 在VMware上安装配置openKylin操作系统
       openKylin是由基础软硬件企业、非营利性组织、社团组织、高等院校、科研机构和个人开发者共同创立的一个开源社区,致力于通过开源、开放的社区合作,构建桌面操作系统开源社区,推动Linux开源技术及其软硬件生态繁荣发展。openKylin的愿景是成为全球领先的桌面操作系统,为用户提......
  • Pytorch nn.Linear的基本用法与原理详解
    Pytorchnn.Linear的基本用法与原理详解原文:Pytorchnn.Linear的基本用法与原理详解_iioSnail的博客-CSDN博客nn.Linear的基本定义nn.Linear定义一个神经网络的线性层,方法签名如下:torch.nn.Linear(in_features,#输入的神经元个数out_features,#输出神经元个数......