配置跨域资源共享策略
出于安全性考虑,浏览器会限制从页面脚本内发起的跨域请求,此时页面只能访问当前域的资源。CORS允许浏览器向跨域服务器发送XMLHttpRequest请求,从而实现跨域访问。更多跨域访问的说明请参见配置跨域访问API。
ROMA Connect支持通过插件策略的方式,为API提供灵活的扩展能力。跨域资源共享策略为跨域访问提供指定预检请求头和响应头、自动创建跨域预检请求API的扩展能力,可快速、灵活的实现API的跨域访问。
插件策略和API本身相互独立,只有为API绑定插件后,插件策略才对API生效。为API绑定插件策略时需指定发布环境,插件只对指定环境上的API生效。
约束与限制
- 同一个API在同一个环境中只能绑定一个相同类型的插件策略,已被API绑定的插件策略无法删除。
- 同一API分组下,发布在同一环境且请求路径相同的所有API,只能绑定同一个跨域资源共享策略。
- 若API开启了“支持CORS”功能的同时,也绑定了跨域资源共享策略,则以绑定的插件策略为准。
- 若某个请求路径下有OPTIONS方法的API,则在OPTIONS方法API所在发布环境中,该请求路径的所有API均不允许绑定跨域资源共享策略。
- 为API绑定插件策略时,API的请求方法必须为allow_methods中允许的请求方法。
创建跨域资源共享策略
- 登录ROMA Connect控制台,在“实例”页面单击实例上的“查看控制台”,进入实例控制台。
- 在左侧的导航栏选择“服务集成 APIC > API策略”,在“策略管理”页签下单击“创建策略”。
- 在选择策略类型弹窗中选择“插件策略 > 跨域资源共享”。
- 在配置策略弹窗中配置插件策略信息。
表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响应头,指定本次预检请求的有效期,单位为秒。在有效期内,无需再次发出预检请求。
Allow Credentials
Access-Control-Allow-Credentials响应头,表示是否允许浏览器读取请求响应的内容。
- 单击“确定”,完成插件策略的创建。
插件策略创建后,您还需要为API绑定插件策略,才能使插件策略对API生效。