更新时间:2022-03-18 GMT+08:00
分享

跨域资源共享策略

出于安全性考虑,浏览器会限制从页面脚本内发起的跨域请求,此时页面只能访问当前域的资源。CORS允许浏览器向跨域服务器发送XMLHttpRequest请求,从而实现跨域访问。更多跨域访问的说明请参考开启跨域共享

跨域资源共享策略为跨域访问提供指定预检请求头和响应头、自动创建跨域预检请求API的扩展能力,可快速、灵活的实现API的跨域访问。

使用限制

  • 已了解前提条件
  • 同一API服务下,相同请求路径的所有API,只能绑定同一个跨域资源共享策略。
  • 若API开启了“支持CORS”功能的同时,也绑定了跨域资源共享策略,则以绑定的策略为准。
  • 若某个请求路径下有OPTIONS方法的API,则该请求路径下的所有API均不允许绑定跨域资源共享策略。
  • 为API绑定策略时,API的请求方法必须为allow_methods中允许的请求方法。

配置参数说明

表1 配置参数说明

参数

配置说明

allowed origins

Access-Control-Allow-Origin响应头,指定允许访问API的外域URI,多个URI之间使用英文逗号隔开。

对于未携带身份凭证的请求,可以把参数值设置为“*”,表示允许来自所有域的访问请求。

allowed methods

Access-Control-Allow-Methods响应头,指定允许使用的HTTP请求方法,多个请求方法之间使用英文逗号隔开。

allowed headers

Access-Control-Allow-Headers响应头,指定XMLHttpRequest请求中允许携带的请求头字段,多个请求头之间使用英文逗号隔开。

其中,简单请求头Accept、Accept-Language、Content-Language、Content-Type(取值仅限为application/x-www-form-urlencoded、multipart/form-data、text/plain时)默认允许在请求中携带,无需在该参数中设置。

exposed headers

Access-Control-Expose-Headers响应头,指定XMLHttpRequest请求响应中允许携带的响应头字段,多个响应头之间使用英文逗号隔开。

其中,基本响应头Cache-Control、Content-Language、Content-Type、Expires、Last-Modified、Pragma默认允许在响应中携带,无需在该参数中设置。

maximum age

Access-Control-Max-Age响应头,指定本次预检请求的有效期,单位为秒。在有效期内,无需再次发出预检请求。

allowed credentials

Access-Control-Allow-Credentials响应头,定XMLHttpRequest请求中是否允许携带Cookie。

  • true表示允许。
  • false表示不允许。

脚本配置示例

{
  "allow_origin": "*",
  "allow_methods": "GET,POST,PUT",
  "allow_headers": "Content-Type,Accept,Accept-Ranges,Cache-Control",
  "expose_headers": "X-Request-Id,X-Apig-Latency",
  "max_age": 172800,
  "allow_credentials": true
}

相关文档