此操作
Preflight Queue Request
在发送请求之前查询 Azure 队列存储的跨源资源共享 (CORS) 规则。
Web 浏览器或其他用户代理发送预检请求,该请求包括代理想要发出的请求的源域、方法和标头。 如果为队列存储启用了 CORS,则队列存储会根据帐户所有者通过
“设置队列服务属性”
配置的 CORS 规则评估预检请求。 然后,队列存储接受或拒绝请求。
有关 CORS 和预检请求的详细信息,请参阅
对 Azure 存储的
CORS 规范
和 CORS 支持。
可以按如下所示指定
Preflight Queue Request
。 将
<account-name>
替换为存储帐户的名称。 替换为
<queue-resource>
将成为请求目标的队列资源的名称。
HTTP 谓词
请求 URI
HTTP 版本
URI 必须始终包含正斜杠 (/) ,以便将主机名与 URI 的路径和查询部分分开。 对于此操作,URI 的路径部分可以为空,也可以指向任何队列资源。
在发出预检请求时,资源可能或可能不存在。 预检请求根据服务的 CORS 规则在服务级别评估,因此存在或缺少资源名称不会影响操作的成功或失败。
URI 参数
下表描述了必需和可选的请求标头:
Access-Control-Request-Method
必需。 指定请求的方法 (或 HTTP 谓词) 。 将根据服务的 CORS 规则检查该方法,以确定预检请求是成功还是失败。
Access-Control-Request-Headers
可选。 指定要发送的请求标头。 如果不存在,则服务假定请求不包含标头。
响应包括 HTTP 状态代码和一组响应标头。
此操作成功后返回状态代码 200(正常)。
有关状态代码的信息,请参阅
“状态”和“错误代码
”。
此操作的响应包括以下标头。 响应还可能包括其他标准 HTTP 标头。 所有标准标头都符合
HTTP/1.1 协议规范
。
有关预检请求标头的详细信息,请参阅
CORS 规范
。
如果已启用 Azure 存储分析并记录指标,则会记录对
Preflight Queue Request
操作的
AnonymousSuccess
调用。 因此,如果在Azure 门户中查看指标,则会看到
AnonymousSuccess
记录的指标
Preflight Queue Request
。 此指标不指示你的私人数据已泄露,但只有
Preflight Queue Request
操作成功,状态代码为 200 (OK) 。
示例请求和响应
以下示例发送源
www.contoso.com
的预检请求。 请求方法设置为
PUT
,请求标头设置为
content-type
和
accept
。
OPTIONS http://myaccount.queue.core.windows.net/myqueue HTTP/1.1
Accept: */*
Origin: www.contoso.com
Access-Control-Request-Method: PUT
Access-Control-Request-Headers: content-type, accept
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
Content-Length: 0
响应指示为服务启用了 CORS,并且 CORS 规则与预检请求匹配:
HTTP/1.1 200 OK
Connection: Keep-Alive
Content-Length: 0
Content-Type: text/html; charset=UTF-8
Access-Control-Allow-Origin: *
Access-Control-Max-Age: 60
Access-Control-Allow-Methods: PUT
Access-Control-Allow-Headers: accept,content-type
如果为服务启用了 CORS 并且 CORS 规则与预检请求匹配,则服务会响应状态代码为 200 (OK) 的预检请求。 响应包含所需的 Access-Control
标头。 在这种情况下,请求将计费。
如果未启用 CORS 或者不存在与预检请求匹配的 CORS 规则,则服务将使用状态代码 403(“禁止”)进行响应。 在这种情况下,不会对请求进行计费。
OPTIONS
如果请求格式不正确,则服务响应状态代码为 400 (错误请求) 且请求未计费。 格式不正确的请求示例是不包含必需 Origin
请求和 Access-Control-Request-Method
标头的请求。
预检请求是一种机制,用于查询与特定存储帐户关联的存储服务的 CORS 功能。 预检请求不针对某个特定资源。
对帐户的操作 (队列存储)
对 Azure 存储的 CORS 支持