Pergunta

Estou interessado em ver qual código Javascript mínimo entre navegadores (jQuery também é adequado) pode ser possível para verificar se um site para o qual desejo enviar solicitações AJAX entre domínios tem suporte para CORS.

Eu sei que o jQuery tem um método para verificar se o navegador apoia isso.Mas eu realmente gostaria de poder verificar se o local remoto também apoia.

Achei que precisava apenas verificar um cabeçalho HTTP, mas é claro que o XHR lançará uma exceção ao tentar fazer uma solicitação entre domínios para um site que não o suporta especificamente.

Mas existe uma maneira de verificar se uma exceção lançada por XMLHttpRequest foi devido ao site não suportar CORS em vez de algo mais dar errado?(Não precisa oferecer suporte a XDomainRequest.)

De qualquer forma, não tenho certeza da melhor maneira mínima/mais rápida entre navegadores para buscar um HTTP HEAD usando AJAX, que presumo ser a maneira mais leve, em vez de buscar uma página, etc.

Caso de uso:Depois de saber se o navegador e o provedor AJAX suportam CORS ou não, posso escolher se quero enviar o mais detalhado JSON/CORS solicitações ou recorrer JSONP solicitações quando necessário.

Foi útil?

Solução

Na medida em que especificação, não é possível.

Se houver um erro de rede:No caso de erros do DNS, a falha da negociação do TLS ou outro tipo de erros de rede, aplique as etapas de erro da rede.Não solicite nenhum tipo de interação do usuário final...

De outra forma:Execute uma verificação de compartilhamento de recursos.Se retornar falhar, aplique as etapas de erro de rede...

Não existe uma forma especial de identificar o caso em que o CORS não é permitido, uma vez que o etapas de erro de rede são aplicados em qualquer caso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top