Antes de enviar uma requisição cross-origin, o navegador envia automaticamente uma requisição OPTIONS de preflight ao OSS com a origem, o método HTTP e os cabeçalhos para determinar se a requisição cross-origin é permitida.
Estrutura da requisição
OPTIONS /ObjectName HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Origin:Origin
Access-Control-Request-Method:HTTP method
Access-Control-Request-Headers:Request Headers
Cabeçalhos da requisição
|
Cabeçalho |
Tipo |
Obrigatório |
Exemplo |
Descrição |
|
Origin |
String |
Sim |
http://www.example.com |
Origem da requisição. Identifica uma requisição cross-origin. Permite-se apenas um cabeçalho Origin por requisição. Valor padrão: null |
|
Access-Control-Request-Method |
String |
Sim |
PUT |
Método HTTP da requisição cross-origin real. Permite-se apenas um valor por requisição. Valor padrão: null |
|
Access-Control-Request-Headers |
String |
Não |
x-oss-test1,x-oss-test2 |
Cabeçalhos personalizados da requisição cross-origin real. Separe vários cabeçalhos com vírgulas (,). Valor padrão: null |
Cabeçalhos da resposta
|
Cabeçalho |
Tipo |
Exemplo |
Descrição |
|
Access-Control-Allow-Origin |
String |
http://www.example.com |
Origem permitida. Ausente na resposta se a requisição for negada. |
|
Access-Control-Allow-Methods |
String |
PUT |
Método HTTP permitido. Ausente na resposta se a requisição for negada. |
|
Access-Control-Allow-Headers |
String |
x-oss-test,x-oss-test1 |
Cabeçalhos de requisição permitidos. Se houver cabeçalhos não permitidos, a requisição será negada e este cabeçalho omitido da resposta. |
|
Access-Control-Expose-Headers |
String |
x-oss-test1,x-oss-test2 |
Cabeçalhos acessíveis ao JavaScript no lado do cliente. |
|
Access-Control-Max-Age |
Integer |
60 |
Tempo máximo de cache dos resultados de preflight pelo navegador. Unidade: segundos. |
Exemplos
Requisição de exemplo
OPTIONS /testobject HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 24 Feb 2012 05:45:34 GMT
Origin:http://www.example.com
Access-Control-Request-Method:PUT
Access-Control-Request-Headers:x-oss-test1,x-oss-test2
Resposta de exemplo
HTTP/1.1 200 OK
x-oss-request-id: 5051845BC4689A033D00****
Date: Fri, 24 Feb 2012 05:45:34 GMT
Access-Control-Allow-Origin: http://www.example.com
Access-Control-Allow-Methods: PUT
Access-Control-Expose-Headers: x-oss-test1,x-oss-test2
Connection: keep-alive
Content-Length: 0
Server: AliyunOSS
ossutil
Para obter informações sobre o comando do ossutil correspondente a esta operação, consulte option-object.
Códigos de erro
|
Código de erro |
Código de status HTTP |
Descrição |
|
AccessForbidden |
403 |
O OSS rejeita a requisição cross-origin ou o CORS está desativado para o bucket. Chame PutBucketCORS para ativar o CORS. Após a ativação, o OSS avalia se permite a requisição cross-origin real com base nas regras de CORS especificadas. |