【问题标题】:"Permission denied" with Internet Explorer and jQueryInternet Explorer 和 jQuery 的“权限被拒绝”
【发布时间】:2011-02-26 22:59:48
【问题描述】:

我尝试在 Internet Explorer 中使用 jQuery 和 $.post 进行 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

【问题讨论】:

  • 你能发布你的代码吗?这会有所帮助:)
  • 就是这样 ;) 当我一直在寻找解决方案时,我已经多次阅读过这个问题。遗憾的是,没有人知道发生了什么。
  • 您在哪个版本的 IE 中使用?
  • IE 7 和 8(其他人为我测试过)
  • 我添加了一个链接,您可以自己尝试一下。

标签: javascript jquery ajax internet-explorer


【解决方案1】:

从 jquerys 论坛 here 上的帖子中,您必须将内容类型元作为 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>

【讨论】:

    【解决方案2】:

    如果是本地(本地主机),那么出于安全原因,您必须拥有完整路径。

    【讨论】:

    • 在这里用http://192.168.0.5/ietest/ajax.html 尝试过。其他浏览器都这样,IE还是一样。
    【解决方案3】:

    就我而言,更改 jquery 版本是可行的。我现在使用的是 1.12.4,而不是使用 1.9.1 版本。

    【讨论】:

      猜你喜欢
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-27
      • 1970-01-01
      • 2014-10-19
      • 1970-01-01
      • 2015-08-30
      相关资源
      最近更新 更多