预请求跨域配置

最近更新时间:2024-08-05 10:56:01

我的收藏

简介

本文档提供关于预请求跨域配置操作相关的 API 概览以及 SDK 示例代码。
OPTIONS Object 用于跨域资源共享(CORS)的预检(Preflight)请求。当浏览器发起 CORS 请求时,浏览器会判断是否有必要发起预检请求,如有必要则浏览器会在发起 CORS 请求前自动发出预检请求,所以在正常情况下,前端开发者不需要自己去发起这样的请求。

注意事项

若您要预请求跨域配置操作,需要具有目标对象的读取权限:在您进行 授权策略 时,action 需要设置为cos:OptionsObject,更多授权请参见 支持CAM的业务接口

相关示例

功能名称
描述
示例代码
预请求跨域配置
提供了预请求跨域配置的功能。

预请求跨域配置

功能说明

获取预请求跨域配置(Options Object)。

使用案例

Objective-C
Swift
QCloudOptionsObjectRequest* request = [[QCloudOptionsObjectRequest alloc] init];

// 存储桶名称,格式:BucketName-APPID
request.bucket =@"examplebucket-1250000000";

// 模拟跨域访问的请求来源域名,请求 method,请求 host
request.origin = @"http://cloud.tencent.com";
request.accessControlRequestMethod = @"GET";
request.accessControlRequestHeaders = @"host";

// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "video/xxx/movie.mp4"
request.object = @"exampleobject";

[request setFinishBlock:^(id outputObject, NSError* error) {
// 可以从 outputObject 中获取 response 中 etag 或者自定义头部等信息
NSDictionary* info = (NSDictionary *) outputObject;

}];

[[QCloudCOSXMLService defaultCOSXML] OptionsObject:request];
let optionsObject = QCloudOptionsObjectRequest.init();

// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "video/xxx/movie.mp4"
optionsObject.object = "exampleobject";

// 模拟跨域访问的请求来源域名,请求 method,请求头部
optionsObject.origin = "http://www.qcloud.com";
optionsObject.accessControlRequestMethod = "GET";
optionsObject.accessControlRequestHeaders = "origin";

// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
optionsObject.bucket = "examplebucket-1250000000";

optionsObject.finishBlock = {(result,error) in
if let result = result {
// 可以从 result 中获取服务器返回的 header 信息
}
}
QCloudCOSXMLService.defaultCOSXML().optionsObject(optionsObject);

SDK API 参考

SDK 所有接口的具体参数与方法说明,请参考 SDK API

API 操作

查询对象元数据涉及的 API 接口说明,请参见 Options Object 文档。