上云无忧 > 文档中心 > 腾讯云 API 网关插件 - 跨域访问控制 CORS
腾讯云 API 网关插件 - 跨域访问控制 CORS

文档简介:
操作场景: 跨域资源共享(Cross-Origin Resource Sharing,CORS)是 W3C 的标准。CORS 允许 Web 应用服务器进行跨域访问控制,从而使跨域数据传输得以安全进行。目前 API 网关支持对 CORS 规则的配置,从而根据需求允许或者拒绝相应的跨域请求。
*此产品及展示信息均由腾讯云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

操作场景

跨域资源共享(Cross-Origin Resource Sharing,CORS)是 W3C 的标准。CORS 允许 Web 应用服务器进行跨域访问控制,从而使跨域数据传输得以安全进行。目前 API 网关支持对 CORS 规则的配置,从而根据需求允许或者拒绝相应的跨域请求。
当 API 网关的默认跨域配置不能满足您的需求时,您可通过跨域访问控制插件设置自定义的复杂跨域规则,并绑定到 API 生效。

操作步骤

步骤1:创建插件

1. 登录 API 网关控制台
2. 在左侧导航栏,单击插件 > 系统插件,进入系统插件列表页。
3. 单击列表左上角的新建,插件类型选择跨域访问 CORS

参数
是否必填
说明
来源 Origin
必填
允许跨域请求的来源。
可以同时指定多个来源,多个来源间用英文逗号分隔。
配置支持*,表示全部域名都允许。
注意不要遗漏协议名 http 或 https,若端口不是默认的80,还需要带上端口。
默认情况下,API 网关会根据请求来源的 Origin 进行跨域匹配。只要请求来源的 Origin 中包含了所配置的跨域 Origin,就会被认为是跨域请求。如果您希望进行完全匹配,可以使用正则表达式的^和符号来实现。例如,使用正则表达式: ^https://www.qq.com$ 可以确保只有完全匹配 https://www.qq.com 的请求才会被视为跨域请求。
操作 Method
必填
支持 GET、PUT、POST、DELETE、HEAD。枚举允许一个或多个跨域请求方法。
Allow-Headers
选填
在发送 OPTIONS 请求时告知服务端,接下来的请求可以使用哪些自定义的 HTTP 请求头部。
可以同时指定多个 Headers,Header 间用英文逗号分隔。
配置支持 *,表示全部 Header 都允许。
不填时代表空,即全部 Header 都禁止。
Expose-Headers
选填
允许暴露给XMLHttpRequest对象的头。
可以同时指定多个 Headers,Header 间用英文逗号分隔。
配置支持 *,表示全部 Header 都允许。
不填时代表空,即全部 Header 都禁止。
允许Cookie
选填
是否允许 Cookie。
超时 Max-Age
必填
设置 OPTIONS 请求得到结果的有效期(秒)。数值必须为正整数,例如600。

步骤2:绑定 API 并生效

1. 系统插件列表中选中刚刚创建好的插件,单击操作列的绑定 API
2. 在绑定 API 弹窗中选择服务和环境,并选择需要绑定插件的 API。

3. 单击确定,即可将插件绑定到 API,此时插件的配置已经对 API 生效。

PluginData

		
					
{
"allow_origin":[ // 允许的ORIGIN, 支持*,表示全部域名都允许
"*"
],
"allow_methods":[ // 允许的方法, 支持GET、PUT、POST、DELETE、HEAD
"PUT",
"GET",
"POST",
"DELETE",
"HEAD"
],
"allow_headers":[ // 允许的请求头部, 支持*,表示全部 Header 都允许
"X-Api-ID"
],
"expose_headers":[ // 允许暴露给XMLHttpRequest对象的头, 支持*,表示全部 Header 都允许
"X-Api-ID"
],
"allow_credentials":true, // 是否允许Cookie
"max_age":600 // 设置 OPTIONS 请求得到结果的有效期(秒)。数值必须为正整数,例如600秒
}

注意事项

目前 API 网关中有两个地方可以设置跨域访问控制规则:
创建 API - 前端配置 - 支持 CORS:在创建 API 时打开支持 CORS 配置项,开启后 API 网关将默认在响应头中添加 Access-Control-Allow-Origin : *

本文所描述的跨域访问控制插件请参见 操作步骤

跨域访问控制插件的优先级高于支持 CORS 配置项,当跨域访问控制插件绑定到某一 API 时,该 API 的支持 CORS 配置项将不生效。

相似文档
  • 操作场景: 条件路由插件可根据参数取值转发到不同后端。根据请求的参数取值与系统参数取值,按规则将不同的客户端请求转发到不同后端地址,可广泛应用于灰度发布、蓝绿发布、租户路由等场景。
  • 操作场景: 通过配置缓存插件,API 网关可存储后端应答,当遇到相同请求参数的请求时,API 网关将直接返回缓存的应答,无需转发到后端服务,以此达到降低后端的负荷,减少时延,增加平滑度的目的。
  • 操作场景: 如果 API 网关提供的认证鉴权方式不能满足您的需求,您可以使用自定义认证插件,通过您自定义的代码进行认证鉴权。 自定义认证插件作用在请求过程中,客户端请求 API 网关后,API 网关会将请求内容转发到认证函数中。您可以将认证函数部署在云函数上,公网、或内网 VPC 上,认证通过后请求才会被转发给业务后端,否则将拒绝请求。
  • 操作场景: 客户端发给业务后端的请求体中包含很多字段,如果您需要修改请求体内容,可以通过自定义请求体插件实现。
  • 操作场景: API 网关响应给客户端响应体中包含很多字段,如果您需要修改响应体内容,可以通过自定义响应体插件实现。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部