web-dev-qa-db-fra.com

"Autorisation refusée" avec Internet Explorer et jQuery

J'essaie de faire un AJAX appel avec jQuery et $.post dans Internet Explorer, mais tout ce que j'obtiens est une erreur disant "Autorisation refusée". Le problème est un peu bizarre car il ne se produit que lorsque j'accède à une page après avoir été sur une autre page.

Par exemple, je tape l'URL dans la ligne d'adresse et je laisse IE charger la page. Ensuite, je clique sur un bouton pour que le script commence à charger les données JSON. (Le script fournissant les données se trouve sur le même serveur et j'y accède avec une URL relative, donc l'utilisation d'un domaine différent n'est pas le problème ici. Même essayé d'utiliser une URL absolue avec la même partie Host.)

Mais quand je rafraîchis la page et que je réessaye, ça marche! Même chose quand j'arrive sur cette page depuis une autre page. Au début, rien ne fonctionne, mais quand je clique sur "rafraîchir", tout va bien.

IE me donne le message d'erreur "Autorisation refusée" alors que dans tous les autres navigateurs, je ne remarque pas ce comportement. Puisque j'ai essayé beaucoup de choses et que je ne peux toujours pas imaginer où se situe le problème, je voudrais vous demander quel pourrait être le problème selon vous?

edit: Un petit exemple:

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 );
        });
    });
});

Essayez-le ici: http://t1318.greatnet.de/ietest/test.html

25
rallex

Depuis le post sur le forum jquerys ici , vous devez avoir le type de contenu meta comme premier élément dans votre balise head.

<!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>
32
Gordon Tucker

Si c'est local (localhost), alors pour des raisons de sécurité, vous devez avoir le chemin complet.

0
adardesign

Dans mon cas, la modification de la version jquery a fonctionné. Au lieu d'utiliser la version 1.9.1, j'utilise maintenant 1.12.4 et cela fonctionne.

0
Wilson