相关文章推荐
憨厚的烈酒  ·  C#中 ...·  1 年前    · 
玩命的海豚  ·  VC中ofstream ifstream ...·  1 年前    · 
知识渊博的投影仪  ·  vue.js - How to fix ...·  1 年前    · 

此操作 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 支持