Alguma versões hospedadas do jQuery que possuem o cabeçalho 'Access-Control-Alow-Origin: *'?

StackOverflow https://stackoverflow.com/questions/2626367

  •  26-09-2019
  •  | 
  •  

Pergunta

Eu tenho trabalhado com o jQuery recentemente e fiz um problema em que não pude incluí -lo em um Usuárioscript porque o XmlHttPrequest usa o Mesma política de origem. Após testes adicionais, descobri que a maioria dos navegadores também apóia o Compartilhamento de recursos de origem cruzada Controle de acesso definido pelo W3C como uma solução alternativa para problemas com a mesma política de origem. Eu testei isso hospedando o script jQuery em um servidor da web local que incluía o Access-Control-Allow-Origin: * O cabeçalho HTTP, que permitiu que o script fosse baixado usando o XMLHTTPREQUEST para que pudesse ser incluído no meu Usuárioscript. Eu gostaria de usar uma versão hospedada do jQuery ao lançar o script, mas até agora testando com ferramentas como http://www.seoconsultants.com/tools/headers Não encontrei sites que permitam acesso cruzado ao script jQuery. Aqui está a lista que testei até agora:

Existem outras versões hospedadas do jQuery que permitem acesso cruzado de origem? Eu sei que o jQuery geralmente é carregado por meio de uma tag de script (às vezes uma tag de script criada dinamicamente), mas neste caso específico eu tenho que usar o xmlHttPrequest e avaliar para garantir que ele seja carregado no escopo correto. O Google Chrome suporta scripts de usuário, mas não suporta @require, o que significa a única maneira de usar jQuery em um script de usuário no Google Chrome é incorporá -lo ao arquivo .user.js ou carregá -lo por meio de um xmlHttPrequest. A incorporação é uma solução menos do que ótima e, embora as extensões do Chrome permitam que você inclua os arquivos JQuery JS nas extensões, eu prefiro ficar com scripts do usuário, pois são muito mais simples e podem trabalhar em mais do que apenas um navegador. Eu já enviei ingressos com os dois Google Ajax APIs e jQuery Equipes para permitir o acesso de domínio cruzado à CDN, mas meu palpite é que vou ter que hospedá -lo por enquanto.

Foi útil?

Solução

Desde que você fez essa pergunta, o Google CDN adicionou esses cabeçalhos conforme solicitado. Uma rápida entrada de https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js produz o cabeçalho:

access-control-allow-origin:*

Portanto, adicione uma etiqueta de script como esta e você está pronto para ir:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" crossorigin="anonymous" type="text/javascript"></script>

Outras dicas

Eu tive o mesmo problema, e minha solução acabou sendo hospedada no arquivo. Com minha própria hospedagem, eu poderia permitir solicitações de domínio cruzado para o script jQuery.

Tentei pular por muitos aros para contornar isso e passei muitas horas tentando caçar e experimentar hosts de script que permitiram acesso ao domínio cruzado. Eventualmente, porém, cheguei à conclusão de que, se vou confiar em alguma versão hospedada desconhecida do script, eu também poderia hospedá -lo, porque confio em mim mais do que os anfitriões que estava considerando.

O Amazon CloudFront permite definir o cabeçalho de acesso a acessar-se-arel-origin. Basicamente, se você se hospedar no JQuery, coloque um CDN Cloudfront na frente dele, o CloudFront retransmitirá os cabeçalhos que você voltará ao cliente:

your jQuery -> Cloudfront jQuery -> Client Browser
[header set]   [header set]         [header set]

O CDN do CloudFront está configurado por usuário da Amazon; A desvantagem disso em comparação para dizer que as APIs do Google hospedadas são que os visitantes iniciantes do seu site não terem carregado o jQuery visitando outro site (e, portanto, se beneficiam do cache.)

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