Pergunta

Eu gostaria de fazer uma chamada de Ajax para um servidor diferente (o mesmo domínio e caixa, apenas uma porta diferente.) Por exemplo,

Minha página é

http://localhost/index.html

Eu gostaria de fazer uma solicitação get ajax para:

http://localhost:7076/?word=foo

Estou recebendo este erro:

Access to restricted URI denied (NS_ERROR_DOM_BAD_URI) 

Eu sei que você não pode fazer uma solicitação ajax para um domínio diferente, mas parece que isso também inclui portas diferentes?há alguma solução alternativa?

Foi útil?

Solução

Tenha uma determinada página em suas solicitações de proxy do servidor da porta 80 para a outra porta.Por exemplo:

http://localhost/proxy?port=7076&url=%2f%3fword%3dfoo

Observe a codificação do URL no último valor do argumento da string de consulta.

Outras dicas

Você poderia usar JSONP.É aqui que você especifica um retorno de chamada com a solicitação, a resposta da sua solicitação ajax é agrupada com o nome da função de retorno de chamada.Em vez de usar XmlHttpRequest, você insere uma tag no documento HTML com o URL.Então, quando a resposta é recuperada, a função de retorno de chamada é chamada, passando os dados como parâmetro.

Verifique isso postagem no blog fora para um exemplo

Esta é uma restrição do navegador.Todas as chamadas javascript devem ser para o mesmo servidor e porta inicial do script.Isso exigirá algo do lado do servidor para contornar.I.E.ter o processo em localhost encaminhar a solicitação para localhost:7076.

É uma merda, mas é necessário...Basicamente, o que você precisará fazer é proxy de sua solicitação AJAX por meio de um proxy local - algum script/página/qualquer coisa no mesmo domínio em que você está - receber a chamada e encaminhá-la para outro servidor de recursos- lado.Pode haver alguns truques de IFRAME que você poderia fazer, mas não acho que funcionem muito bem...podem estar errados, já faz algum tempo.

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