Pergunta

function publish(text) {
 $('#helpdiv').prepend(text);
}

function get_help(topic) {
  $.get(topic, publish);
}

<p>Hi. <a href="#" onclick="get_help('inline-help.html'); return false;">click here for more help.</a></p>
<div id="helpdiv"></div>

Eu herdei esse pedaço de HTML e JavaScript acima (snippet). Ele seria usado como ajuda local. Atualmente, está apenas online e funciona bem. No entanto, quando copio os arquivos localmente, recebo "permissão negada" no Internet Explorer e no Chrome não faz nada quando "clico aqui para obter mais ajuda". O que deve fazer é carregar o conteúdo de ajuda do Inline-help.html e exibi-lo na diviv. Agora aqui está o kicker, se eu pegar os mesmos arquivos e copiar -os para o INETPUB no meu PC e carregá -los como http: //localhost/hello.html Funciona perfeitamente.

Presumivelmente, isso é uma coisa de segurança em que a zona "local" não está me permitindo carregar arquivos do HD do usuário? Mas não tenho muita certeza do que está acontecendo e gostaria de entender esse problema ainda mais e potencialmente criar uma solução alternativa.

Qualquer visão é muito apreciada.

Foi útil?

Solução

O JQuery's "get" usa xmlHttPrequest, que não funciona em arquivos locais, infelizmente. Se você realmente precisar obter dados locais (ou dados de um domínio diferente) de forma assíncrona, use tags de script dinâmico. No entanto, isso significa que o arquivo de dados deve ser reformatado como dados JSON.

Outras dicas

Eu não acho que seu navegador está permitindo que você execute JavaScript localmente (usando o file:/// método de acesso). Mas quando você o carrega de http://localhost/ Funciona bem.

Você precisa se desenvolver em um site ou usar o servidor localhost.

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