【问题标题】:SCRIPT5: Access Denied on IE9 due to jQuery.min CDN file in WordpressSCRIPT5:由于 Wordpress 中的 jQuery.min CDN 文件,IE9 上的访问被拒绝
【发布时间】:2012-08-27 06:47:10
【问题描述】:

我已经阅读了很多关于 SCRIPT5 的其他文章:IE9 中的访问被拒绝问题,但据我所知,这篇文章有点不同,我不确定它为什么会发生。

在使用标准 2011 主题安装 Wordpress 3.4.1 时出现这种情况。我使用以下函数将我的脚本排入队列:

function my_scripts(){
    wp_deregister_script('jquery');
    wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js',null,null,true);
    wp_register_script('cycle', 'http://ajax.microsoft.com/ajax/jquery.cycle/2.88/jquery.cycle.all.js',null,null,true);
    wp_register_script('plugin', get_stylesheet_directory_uri() . '/scripts/plugin-init.js',null,null,true);
    wp_enqueue_script('jquery');
    wp_enqueue_script('cycle');
    wp_enqueue_script('plugin');
}

首先,jquery 和 cycle 脚本都从 CDN 中提取。 plugin 脚本为空,但对单个元素的基本 cycle 调用除外。

此时所有浏览器都可以正常工作,IE9 除外。我收到以下错误:

 SCRIPT5: Access is denied
 jquery.min.js, line 2 character 68522 

我很快就发现这是一个跨域问题:

Access denied to jQuery script on IE

SCRIPT5: Access is denied in IE9 on xmlhttprequest

我发现这很奇怪,因为我的插件中没有跨源函数。这个问题也出现在jquery 本身而不是我的代码上。尝试了几个建议的修复方法,但都没有成功。

尝试了一些基本的东西。将脚本直接移动到页脚中。尝试将其直接移动到标题中。尝试将我的脚本排除在等式之外。在这一点上拉我的头发。

我最好的选择是实际查看导致代码错误的原因(因为我无法使用缩小版本)。此时代码直接在标题中,因此从脚本中删除了.min,进行了刷新,然后TA-DA:一切都在顺利进行。

如果我尝试使用wp_register_script 和wp_enqueue_script 将未缩小的脚本声明移回my_scripts() 函数,它将再次失败。如果我尝试将未缩小的脚本声明移动到页脚中,它将再次失败。我当时没有测试本地副本,只测试了 CDN 版本。

这是相同的 SCRIPT5 错误,但不幸的是,我没有方便地生成错误的代码。这是前几天在办公室,我周末休息。我试图在我的个人沙盒上重现这些事件,但未能成功重现错误,这让我相信未列出的东西可能是罪魁祸首。

有人知道这里发生了什么吗?为什么jquery.min 会在未压缩文件不会失败的地方失败?除非直接在<head> 中,否则为什么未缩小的文件会继续失败?

很高兴提供更多信息,尽管其中一些可能要等到我下周重返工作岗位。我会尽快尝试发布其余代码。

【问题讨论】:

  • 你可以显示头部的真实浏览器输出吗?
  • 不幸的是,目前没有。这是一个与工作相关的项目。我不在现场,几天内将无法访问社区以获取更多详细信息。我确实尝试过稍微改进一下这个问题,但暂时不确定它会有多大帮助。
  • 我遇到了类似的问题,但仅限于我的 Live 网站 (www.riiviva.com) - 在 IE9 中无法加载主滑块。但会加载 IE9+ 兼容性。

标签: jquery wordpress internet-explorer debugging internet-explorer-9


【解决方案1】:

我也遇到了同样的问题,jQuery 1.8.1 为我解决了这个问题

【讨论】:

  • 非常感谢 - 直到看到您的帖子才注意到 jQ 更新。拯救了我的一天!
  • 是的,做到了!谢谢阿克塞尔!
  • 我花了大约 8 个小时尝试调试 AJAX 调用和所有内容。我正要像其他人建议的那样求助于切换到jsonp......直到我找到这个!哇,所有这些工作,它真的只是一个愚蠢的 jQuery 错误。谢谢! 注意:jQuery 1.8.3 也可以。
  • 只是为了让您知道 jquery 1.10.1 会发生这种情况。我更新到 1.10.2,它又可以正常工作了。
【解决方案2】:

出于某种原因,@axel 的回答对我不起作用。相反,我决定将文件托管在与我的 HTML 文件相同的服务器上并修复它(至少对我而言)

【讨论】:

    猜你喜欢
    • 2014-11-20
    • 2011-09-02
    • 2011-08-13
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    • 2012-10-28
    相关资源
    最近更新 更多