Pergunta simples XML HttpRequest
-
29-10-2019 - |
Pergunta
Estou tentando iniciar uma solicitação de alguns dados de um site externo com uma API.
Se eu copiar e colar a solicitação em meu navegador, ele funcionará bem. Exemplo como (http://example.com/json/user/search/all) Posso ver os resultados na janela do navegador.
No entanto, estou tentando lançar esta consulta de um site e estou tendo um problema: Usando algum javascript como este: var req= new XMLHttpRequest (); req.open ('GET', supracitadourl, verdadeiro) req.send ()
Recebo um erro que diz: Origem (MyDOMAIN) não é permitido pelo Controle de Acesso Permitir Origem.
Novamente, sou bastante novo em XMLHttpRequests e acho que isso é bastante simples de resolver. Ninguem sabe?(Eu tentei pesquisar no Google, mas não consegui encontrar uma boa resposta) Agradecemos antecipadamente.
Solução
Você não tem permissão para fazer Cross-Site XMLHttpRequests e precisa usar umproxy para realizá-lo.
Este artigo do Yahoo explica em detalhes e dá mais ideias de comopara resolver.Mas basicamente isso não deve ser feito porque essa restrição existe para fins de segurança.
Seria melhor se você usasse PHP e fopen()
, por exemplo, e simplesmente chamasse essa página usando seu objeto XMLHttpRequest.
Outras dicas
O problema é a política de mesma origem .Esta é uma regra de que XMLHTTPRequests não pode ser usado, exceto no mesmo domínio da página original.Isso é por razões de segurança.
A maneira mais fácil de contornar isso é escrever um script do lado do servidor que atue como proxy da solicitação para você.
Esta é a proteção do seu navegador contra cross side scripting.Você não tem permissão para acessar outras páginas que vêm de um domínio diferente.
EDIT: Verifique também: XMLHttpRequest entre sites