2010-06-02 19 views
24

Intento hacer una llamada AJAX con jQuery y $.post en Internet Explorer, pero todo lo que obtengo es un error que dice "Permiso denegado". El problema es bastante extraño, ya que ocurre solo cuando accedo a una página después de estar en otra página."Permiso denegado" con Internet Explorer y jQuery

Por ejemplo, escribo la URL en la línea de dirección y dejo que IE cargue la página. Luego hago clic en un botón para que el script comience a cargar datos JSON. (La secuencia de comandos que proporciona los datos se encuentra en el mismo servidor y accedo a ella con una URL relativa, por lo que usar un dominio diferente no es el problema. Incluso intenté usar una URL absoluta con la misma parte de host.)

Pero cuando actualizo la página y la intento de nuevo, ¡funciona! Lo mismo cuando llego a esa página desde otra página. Al principio, nada funciona, pero cuando hago clic en "actualizar" todo está bien.

IE me da el mensaje de error "Permiso denegado", mientras que en todos los demás navegadores no noto este comportamiento. Como he intentado muchas cosas y aún no puedo imaginar dónde radica el problema, me gustaría preguntarle cuál cree que podría ser el problema.

de edición: un pequeño ejemplo:

test.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"> 
    <head> 
     <script type="text/javascript" src="/ietest/jquery.js"></script> 
     <script type="text/javascript" src="/ietest/test.js"></script> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    </head> 
    <body> 
     <a href="#">Test</a> 
    </body> 
</html> 

ajax.html

It works! 

Test.js

$(document).ready(function(){ 
    $('a').click(function(){ 
     $.post('/ietest/ajax.html', function(data) { 
      alert(data); 
     }); 
    }); 
}); 

Inténtelo aquí: http://t1318.greatnet.de/ietest/test.html

+0

¿Se puede publicar el código? Eso ayudaría :) –

+0

Ahí está;) He leído sobre ese problema varias veces cuando he estado buscando una solución. Lamentablemente, nadie tenía idea de lo que está pasando. – rallex

+0

¿Qué versiones de IE está obteniendo esto? –

Respuesta

28

Desde la publicación en el foro jquerys here, debe tener el tipo de contenido meta como el primer elemento en su etiqueta de la cabeza.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <script type="text/javascript" src="/ietest/jquery.js"></script> 
     <script type="text/javascript" src="/ietest/test.js"></script> 
    </head> 
    <body> 
     <a href="#">Test</a> 
    </body> 
</html> 
0

Si su local (localhost), a continuación, por razones de seguridad, debe tener la ruta completa.

+0

Lo intenté aquí con 'http: // 192.168.0.5/ietest/ajax.html'. Otros navegadores lo hacen, IE sigue siendo el mismo. – rallex