使用Internet Explorer和jQuery时出现“权限被拒绝”

25

我尝试使用jQuery和$.post在Internet Explorer中进行AJAX调用,但是出现了一个错误,说“拒绝访问”。问题有点奇怪,因为只有在我从其他页面访问页面后才会出现这种情况。

例如,我在地址栏中输入URL,让IE加载页面。然后我点击一个按钮,脚本应该开始加载JSON数据。(提供数据的脚本位于同一服务器上,并且我使用相对URL访问它,因此不是域名不同的问题。甚至尝试使用具有相同主机部分的绝对URL。)

但是当我刷新页面并再次尝试时,它就可以工作了!当我从另一个页面进入该页面时也是如此。一开始什么都不起作用,但是当我点击“刷新”时,一切正常。

IE给我报错信息“拒绝访问”,而在其他浏览器中我没有注意到这种行为。由于我已经尝试了很多事情,但仍然无法想象问题可能出在哪里,所以我想问问您认为问题可能出在哪里?

编辑: 一个小例子:

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

在这里尝试一下:http://t1318.greatnet.de/ietest/test.html


你能贴出你的代码吗?那会很有帮助 :) - Vivin Paliath
就是这样;) 在寻找解决方案的过程中,我已经多次阅读了有关该问题的资料。不幸的是,没有人知道发生了什么事情。 - rallex
你在哪些版本的IE中遇到了这个问题? - Pekka
IE 7和8(有人替我测试过) - rallex
我添加了一个链接,你可以自己尝试一下。 - rallex
现在我遇到了与IE 11类似的问题,使用jQuery 1.6.4。希望能得到一些帮助。 - elewinso
3个回答

32

根据jquery论坛上的这篇帖子,你必须将内容类型的meta标签放在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>

0
如果是本地(localhost),出于安全考虑,您必须拥有完整路径。

在这里尝试了一下 http://192.168.0.5/ietest/ajax.html。其他浏览器可以,IE还是一样。 - rallex

0
在我的情况下,更改jQuery版本起作用了。现在我使用的是1.12.4版本,而不是1.9.1版本,它可以正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接