jQuery load()在IE中抛出“权限被拒绝”错误

时间:2009-12-23 19:09:57

标签: javascript jquery internet-explorer xmlhttprequest

我正在使用jQuery的load()函数通过AJAX加载页面。它在IE8中不起作用,给出“权限被拒绝”错误。使用IE调试器,似乎当jQuery尝试打开xhr时,即阻塞它。

问题是,我的页面有一个javascript src指向bing maps js api(当然它与我的完全不同)。在我看来,IE试图通过xhr抓取这个js文件,然后抛出“权限被拒绝”错误。有解决方法吗?

我只记得自己下载bing maps js并在本地服务。

5 个答案:

答案 0 :(得分:4)

我对此做了更多测试。似乎错误是由页面上的无效HTML结构引起的。由于它是一个非常复杂的页面,因此打开了不匹配的< div>或< table>在页面上,当我将页面缩短到最小时,它也适用于IE。但我不明白为什么当你第一次到达页面时它不起作用,如果你刷新页面,它将在那之后工作。

答案 1 :(得分:3)

我刚遇到这个问题,我在这个帖子上发布了我的解决方案:

jQuery AJAX problem in IE7 (possibly other versions as well)

答案 2 :(得分:2)

我最终抓住了脚本的副本并自己包含它,因此它位于同一个域中。

答案 3 :(得分:0)

您可以将script标记添加到父文档(进行jQuery load()调用的那个)中的Bing Maps API。

答案 4 :(得分:0)

仅供参考:

我在WinForms应用程序中使用IE 10在Windows 8上遇到此错误。

在这个应用程序中,我正在托管一个WebBrowser control,它从内置的Web服务器加载其内容,并通过window.external与我的主机WinForms应用程序进行通信。

足够的关键字钓鱼。

获取此错误

现在我的应用程序中出现这个jQuery错误的原因是:

  1. 浏览器已成功加载网址。
  2. 我以编程方式加载了另一个网址。
  3. 然后我立即用Form.ShowDialog打开了一个子表单。
  4. 关闭此表单后,显示了jQuery错误。

    解决此错误

    我通过推迟打开子表单直到应用程序处于空闲状态来解决错误。

    即。我在主表单中使用了Queue列表,订阅了Application.Idle事件,在这个事件处理程序中,我逐个处理了队列。

    现在的新步骤是:

    1. 浏览器已成功加载网址。
    2. 我以编程方式加载了另一个网址。
    3. 执行操作以在空闲队列中打开子窗体。
    4. 处理空闲队列时,会打开子表单。
    5. 然后,错误消失了。

      我想,我也可以等到Web浏览器完成加载,而不是使用这个空闲处理,只需订阅DocumentCompleted event并从那里显示子对话框。

      希望这会对某人有所帮助......