检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
开启跨域访问 什么是跨域访问 浏览器出于安全性考虑,会限制从页面脚本内发起的跨域访问(CORS)请求,此时页面只能访问同源的资源,而CORS允许浏览器向跨域服务器,发送XMLHttpRequest请求,从而实现跨域访问。 图1 跨域访问示意图 浏览器将CORS请求分为两类: 简单请求
为什么跨域调用API失败? 可能原因 API的跨域共享配置不正确。 解决方法 检查是否开启CORS。 进入API详情,单击“编辑”,查看是否开启CORS。如果没开启CORS,请开启。 检查是否创建OPTIONS方式的API,每个分组只需创建一个OPTIONS方式的API。 参数配置如下:
开启跨域访问 API网关默认不开启跨域访问,如果您需要开启,请参考以下说明完成跨域配置。如需自定义跨域的请求头、跨域的请求方法和指定授权访问的域,请使用配置API的跨域资源共享。 简单请求的跨域访问 如果是创建新的API,在“安全配置”时,勾选“开启支持跨域(CORS)”开关。详细的使用指导,可参考简单请求。
配置API的跨域资源共享 出于安全性考虑,浏览器会限制从页面脚本内发起的跨域请求,此时页面只能访问当前域的资源。CORS允许浏览器向跨域服务器发送XMLHttpRequest请求,从而实现跨域访问。更多跨域访问的说明请参见跨域调用APIG开放的API。 跨域资源共享策略为跨域访问提
更改,每天最多可以访问1000次。 独立域名:您自定义的域名,最多可以添加5个独立域名,不限访问次数。API调用者通过访问独立域名来调用您开放的API。 前提条件 已有独立域名。可通过域名注册服务申请新的域名。 公网独立域名需要备案,未备案的独立域名无法被访问。备案时长需几个工作日,建议您提前进行备案。
表1 HTTP/HTTPS请求方法以及URI 请求方法 URI GET /v1/{project_id}/apigw/instances/{instance_id}/api-groups/{group_id}/domains/{domain_id}/certificate/{id}
绑定域名 功能介绍 用户自定义的域名,需要CNAME到API分组的子域名上才能生效,具体方法请参见增加CNAME类型记录集。 每个API分组下最多可绑定5个域名。绑定域名后,用户可通过自定义域名调用API。 URI HTTP/HTTPS请求方法以及URI如下表所示。 表1 HTTP/HTTPS请求方法以及URI
SSL证书绑定域名。使用实例自定义入方向端口的特性时,相同的域名会同时绑定证书,注意开启/关闭客户端校验会对相同域名的不同端口同时生效。 调用方法 请参见如何调用API。 URI POST /v2/{project_id}/apigw/certificates/{certificate_id}/domains/attach
x-apigateway-cors: true 表1 参数说明 参数 是否必选 类型 说明 x-apigateway-cors 是 boolean 是否支持开启跨域请求的标识。 true:支持。 false:不支持。 开启跨域访问的API请求,响应会增加如下头域: 头域名称 头域值 描述 Access-Control-Max-Age
配置API的调用域名 API分组创建后,系统为分组自动分配一个内部测试用的调试域名,此调试域名每天最多可以访问1000次。因此,在开放API前,您需要为API分组绑定独立域名,用户通过独立域名访问分组内的API。最多可以添加5个独立域名,不限访问次数。 独立域名可分为内网域名和公网域名两种:
HTTP/HTTPS请求方法以及URI如下表所示 表1 HTTP/HTTPS请求方法以及URI 请求方法 URI GET /v1.0/apigw/api-groups/{group_id}/domains/{domain_id}/certificate/{id} URI中的参数说明如下表所示。
向端口的特性时,注意开启/关闭客户端校验会对相同域名的不同端口同时生效。 调用方法 请参见如何调用API。 URI PUT /v2/{project_id}/apigw/instances/{instance_id}/api-groups/{group_id}/domains/{domain_id}
API的后端服务报“Backend domain name resolution failed” APIG实例所在的VPC完成了内网域名解析,后端服务调用仍报“域名无法解析”错误。 可能原因 APIG实例所在的VPC与用户后端服务所在的VPC存在网络隔离,内网域名解析仅在用户后端服务所在的VPC下能够解析。
域名管理 对象模型 绑定域名 解绑域名 绑定域名证书 删除域名证书 查看域名证书 父主题: 共享版API(仅存量用户使用)
无认证:表示不需要认证。 各种认证方式下的API调用稍有不同,具体请参考调用API。 推荐使用APP认证方式。 须知: 认证方式为华为IAM认证时,任何API网关租户均可以访问此API,可能存在恶意刷流量,导致过量计费的风险。 认证方式为无认证时,任何公网用户均可以访问此API,可能存在恶意刷流量,导致过量计费的风险。
Integer API类型 version String API版本 req_protocol String API访问协议 req_method String API请求方式 req_uri String API访问地址 auth_type String API认证方式 auth_opt
服务进行鉴权。 各种认证方式下的API调用稍有不同,具体请参考调用APIG开放的API。 须知: 认证方式为华为IAM认证时,任何API网关租户均可以访问此API,可能存在恶意刷流量,导致过量计费的风险。 认证方式为无认证时,任何公网用户均可以访问此API,可能存在恶意刷流量,导致过量计费的风险。
req_method String API请求方式 req_uri String API访问地址 auth_type String API认证方式 auth_opt 字段数据类型 API认证方式参数 authorizer_id String 前端自定义认证对象的ID match_mode
调用API失败的可能原因 网络问题 调用API失败的场景分为三种:同一VPC内调用失败、不同VPC之间调用失败、公网调用失败。 VPC内调用API失败时,请检查域名是否和API自动分配的域名一致,如果域名错误,会导致调用API失败。 不同VPC之间调用API失败时,请检查两个VP
到您的API所在分组。请检查API所在的分组域名,例如您有多个API分组,每个分组有自己的独立域名,API调用时,使用了其他分组的独立域名。 检查API是否使用OPTIONS跨域请求,如果使用OPTIONS跨域请求,请在API中开启CORS,并创建OPTIONS方式的API。具体操作请参考开启跨域共享。