你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
预检队列请求
该 Preflight Queue Request
操作在发送请求之前查询 Azure 队列存储的跨域资源共享 (CORS) 规则。
Web 浏览器或其他用户代理发送预检请求,其中包括代理要发出的请求的源域、方法和标头。 如果为队列存储启用了 CORS,则队列存储将针对帐户所有者通过 设置队列服务属性配置的 CORS 规则评估预检请求。 然后,队列存储接受或拒绝请求。
有关 CORS 和预检请求的详细信息,请参阅 AZURE 存储的 CORS 规范 和 CORS 支持。
请求
可以按如下所示指定 Preflight Queue Request
。 将 <account-name>
替换为存储帐户的名称。 将 替换为 <queue-resource>
将成为请求目标的队列资源的名称。
HTTP 谓词 | 请求 URI | HTTP 版本 |
---|---|---|
OPTIONS |
http://<account-name> .queue.core.windows.net/<queue-resource> |
HTTP/1.1 |
URI 必须始终包含正斜杠 (/) ,以便将主机名与 URI 的路径和查询部分分开。 在此操作中,URI 的路径部分可以为空,也可以指向任何队列资源。
在发出预检请求时,资源可能存在,也可能不存在。 根据服务的 CORS 规则在服务级别评估预检请求,因此资源名称是否存在不会影响操作的成功或失败。
URI 参数
无。
请求标头
下表描述了必需请求标头和可选请求标头:
请求标头 | 说明 |
---|---|
Origin |
必需。 指定发出请求的来源。 将根据服务的 CORS 规则检查来源,以确定预检请求是成功还是失败。 |
Access-Control-Request-Method |
必需。 指定请求的方法 (或 HTTP 谓词) 。 将根据服务的 CORS 规则检查该方法,以确定预检请求是成功还是失败。 |
Access-Control-Request-Headers |
可选。 指定要发送的请求标头。 如果不存在,则服务会假定请求不包含标头。 |
请求正文
无。
响应
响应包括 HTTP 状态代码和一组响应标头。
状态代码
此操作成功后返回状态代码 200(正常)。
有关状态代码的信息,请参阅 状态和错误代码。
响应头
此操作的响应包括以下标头。 响应还可能包括其他标准 HTTP 标头。 所有标准标头都符合 HTTP/1.1 协议规范。
有关预检请求标头的详细信息,请参阅 CORS 规范。
响应标头 | 说明 |
---|---|
Access-Control-Allow-Origin |
指示允许的源,如果预检请求成功,则与请求中的源标头匹配。 |
Access-Control-Allow-Methods |
如果预检请求成功,则此标头设置为为请求标头 Access-Control-Request-Method 指定的值。 |
Access-Control-Allow-Headers |
如果预检请求成功,则此标头设置为为请求标头 Access-Control-Request-Headers 指定的值。 |
Access-Control-Max-Age |
指定允许用户代理为将来的请求缓存预检请求的时间长度。 |
Access-Control-Allow-Credentials |
指示是否可以通过凭据发出请求。 此标头始终设置为 true 。 |
响应正文
无。
授权
操作 Preflight Queue Request
始终以匿名方式执行。 它不需要授权,如果提供了凭据,它会忽略凭据。
注意
如果已启用 Azure 存储分析并记录指标,则对操作的 Preflight Queue Request
调用将记录为 AnonymousSuccess
。 出于此原因,如果在Azure 门户查看指标,将看到AnonymousSuccess
记录的 。Preflight Queue Request
此指标并不表示专用数据已泄露,而只是指示 Preflight Queue Request
操作成功,状态代码为 200 (正常) 。
示例请求和响应
以下示例发送源 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 的预检请求, (正常) 。 响应包含所需的 Access-Control
标头。 在这种情况下,对请求进行计费。
如果未启用 CORS 或者不存在与预检请求匹配的 CORS 规则,则服务将使用状态代码 403(“禁止”)进行响应。 在这种情况下,不会对请求计费。
OPTIONS
如果请求格式不正确,服务会响应状态代码 400 (错误请求) ,并且不会对请求计费。 格式不正确的请求的一个示例是不包含必需 Origin
和 Access-Control-Request-Method
标头的请求。
预检请求是一种机制,用于查询与特定存储帐户关联的存储服务的 CORS 功能。 预检请求不针对某个特定资源。