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

问题描述 投票:24回答:3

我尝试在Internet Explorer中使用jQuery和$.post进行AJAX调用,但我得到的是一个错误,说“权限被拒绝”。这个问题有点奇怪,因为只有当我在任何其他页面上访问页面时它才会出现。

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

但是当我刷新页面然后再试一次它就可以了!当我从另一个页面访问该页面时也是如此。起初没什么作用,但当我点击“刷新”一切都很好。

IE给了我错误消息“Permission denied”,而在其他所有浏览器中我都没有注意到这种行为。既然我已经尝试了很多东西,但仍然无法想象问题所在,我想问你认为问题可能是什么?

编辑:一个小例子:

的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

javascript jquery ajax internet-explorer
3个回答
31
投票

从jquerys论坛here上的帖子中,您必须将内容类型元作为头标记中的第一项。

<!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),那么出于安全原因,您必须拥有完整路径。


0
投票

在我的情况下,更改jquery版本工作。而不是使用版本1.9.1,现在我使用1.12.4,它的工作原理。

© www.soinside.com 2019 - 2024. All rights reserved.