应用与数据集成平台 ROMA Connect-配置跨域访问API:概述

时间:2023-11-01 16:17:05

概述

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

图1 跨域访问

浏览器将CORS请求分为两类:简单请求和非简单请求。

  • 简单请求:同时满足以下2个条件的,即为简单请求。
    • 请求方法为HEAD/GET/POST。
    • HTTP的头信息不超出以下几种字段:Accept、Accept-Language、Content-Language、Last-Event-ID、Content-Type(只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain)。

    对于简单请求,浏览器自动在头信息之中添加一个Origin字段,用于说明本次请求来自哪个源(协议+ 域名 +端口)。服务器根据Origin字段,决定是否同意这次请求。服务器响应消息中包含“Access-Control-Allow-Origin”时,表示同意请求。

  • 非简单请求:不满足以上2个条件的,都为非简单请求。

    对于非简单请求,在正式通信之前,浏览器会增加一次HTTP查询请求,称为预检请求。浏览器查询服务器,当前页面所在的源是否在服务器的许可名单之中,以及可以使用哪些HTTP请求方法和头信息字段。预检通过后,浏览器向服务器发送简单请求。

ROMA Connect默认不支持跨域访问,如果您需要支持跨域访问,则需要在创建API时打开“支持CORS”功能。CORS为非简单请求时,还需要创建一个“Method”为“OPTIONS”的API作为预检请求。

support.huaweicloud.com/usermanual-roma/apic-ug-190215043.html