【问题标题】:Only on Firefox "Loading failed for the <script> with source"仅在 Firefox 上“使用源代码加载 <script> 失败”
【发布时间】:2018-02-03 09:38:50
【问题描述】:

我想将 Marketo 表单与我在 yii 框架上的现有网站集成。 我的代码适用于除 Firefox 之外的所有浏览器。

摘自我的代码:

    $('#button').click(function () {
    var formData = {
        'Email': $('#UserInfo_email').val(),
        'FirstName': $('#UserInfo_first_name').val(),
        'LastName': $('#UserInfo_last_name').val(),
        };
    MktoForms2.loadForm('//app-ab23.marketo.com', mcId, formId, function (form) {
        var myForm = MktoForms2.allForms()[0];
        myForm.addHiddenFields(formData);
        myForm.onSuccess(function (values, followUpUrl) {
            return false;
        });
        myForm.submit();
    });
});

我只在 Firefox 上收到错误消息

来源为“http://app-ab23.marketo.com/index.php/form/getForm?munchkinId=1111&form=1111&url=http%3A%2F%2Fblox.dev%2Fwizard%2Fmap&callback=jQuery110207175825035737486_1503656391790&_=1503656391791”的

其他浏览器可以正确完成这项工作

注意:munchkinId 和 formId 已更改以在此处发布。

【问题讨论】:

  • 您是否尝试过刷新浏览器? .. 网址栏右侧的圆形箭头
  • 是的,我刷新了浏览器,当将 url 复制/粘贴到另一个选项卡时,它会加载内容。
  • 另一个标签 .. 在同一个浏览器中工作?
  • 我的意思是无法加载并显示在控制台错误中的 url,在另一个选项卡中加载但页面本身不起作用。
  • 还可以尝试在开发者控制台中打开“网络”选项卡并查找状态 >= 400 的请求。

标签: javascript php jquery firefox yii


【解决方案1】:

我刚刚在加载具有相对路径的脚本的应用程序上遇到了同样的问题。

脚本似乎只是被 Adblock Plus 阻止了。

尝试禁用您的广告/脚本拦截器(Adblock、uBlock Origin、Privacy Badger...)或重新定位脚本,使其与您的广告拦截器的规则不匹配。

如果您没有安装此类插件,请尝试在running Firefox in safe mode 时重现该问题。

  • 如果您无法在安全模式下重现它,则表示您的问题与您的某个插件或设置有关。
  • 否则,可能是不同的问题。确保您有与问题中相同的错误消息。另请查看开发人员工具的网络选项卡以检查您的脚本是否已列出(如果需要,请先重新加载页面)。

【讨论】:

  • 伙计,你会怎么想? -_-
  • @linusg 我不记得确切但我知道我查看了开发工具中的网络选项卡,我很困惑,因为这个脚本根本没有任何内容,即使其余脚本被加载。必须有什么东西预先阻止它。
  • 我对此有大约一小时的困惑,没有连接或网络选项卡中显示任何内容。只是 XHR 请求以状态 0 退出。最后它是 uBlock Origin,在禁用它之后,我的代码就像一个魅力。但是如果没有这个答案,我会继续搜索源代码几个小时,非常感谢!
  • 如果这些工具向控制台报告阻塞,那就太好了。
  • 我必须禁用 Privacy Badger 才能加载 cdn.datatables.net。
【解决方案2】:

我刚刚遇到了同样的问题 - 对我来说,Firefox 上的 Privacy Badger 是问题 - 而不是广告拦截器。为后代发帖

【讨论】:

  • 我遇到了完全相同的问题。 Privacy Badger 似乎阻止了 DataTables CDN
【解决方案3】:

我注意到在 Firefox 中,当请求被中止(切换页面或快速刷新页面)时可能会发生这种情况,但即使我尝试重现该错误也很难。

其他可能的原因:cert 相关问题和这个谈论blockers(如其他答案所述)。

【讨论】:

    【解决方案4】:

    今天,我在处理渐进式 Web 应用 (PWA) 页面并从 Firefox 中删除该页面的一些缓存和服务工作者数据时遇到了完全相同的问题。开发控制台报告页面上的 4 个 Javascript 文件都不会再加载。该问题在安全模式下仍然存在,因此它不是附加问题。相同的脚本文件可以从同一网站上的其他网页正常加载。清除 Firefox 缓存或从 Firefox 中擦除网页数据无济于事,重启 Windows 10 PC 也无济于事。 Chrome 在问题页面上一直运行良好。最后,我从一天前的备份中恢复了整个 Firefox 配置文件文件夹,问题立即消失了,所以我的 PWA 应用程序没有问题。显然 Firefox 中的某些内容已损坏。

    【讨论】:

      【解决方案5】:

      我在错误消息中遇到了同样的问题(虽然是不同的 Web 应用程序),结果证明 .js 文件的 MIME-Type 是 text/x-js 而不是 application/javascript 由于 mime.types 中的重复条目在负责提供 js 文件的服务器上。如果设置了标头 X-Content-Type-Options: nosniff 似乎会发生这种情况,这会使 Firefox(和 Chrome)阻止 js 文件的内容。

      【讨论】:

        【解决方案6】:

        如上所述,这可能是您的浏览器扩展程序的问题。禁用所有扩展程序包括 Adblock,然后再试一次,因为代码现在可以在我的浏览器中正常加载(Google Chrome - 最新),所以这可能是您的问题。另外,您是否尝试过其他浏览器,例如 shudders IE(如果有)?众所周知,Adblock 与包含 trackmarket 的域名冲突,这是一揽子规则。尝试使用private browsing modesafe mode

        【讨论】:

        • 我尝试了你建议的所有可能的东西。我唯一在想的是javascript引擎。一定有一些轻微的问题导致了这个问题。
        • 那一定是 Firefox 的某个功能,去Bugzilla 开一张票。
        • 在我的例子中,它是 DuckDuckGo Privacy Essentials,它还阻止了在私有模式下被视为跟踪器的脚本。但是,网络选项卡确实会告诉您这一点。
        【解决方案7】:

        我遇到了同样的问题(确切的错误消息),在挖掘了几个小时后,我发现内容标题需要设置为 application/javascript 而不是我的 application/json。更改后,它现在可以工作了。

        【讨论】:

        • 如果您提到了内容标题在哪里,即什么标签,那将非常有用,但是这不是一个有用的响应。
        • @AndrewS 这真的取决于您使用的语言。当我遇到这个它是在 PHP 上时,所以我最终只是在脚本响应 header("Content-Type: application/javascript"); 中做。基本上,我的动态 JS 代码返回了错误的标头。由于某种原因,默认情况下它是application/json。希望这会有所帮助。
        【解决方案8】:

        如果 VPN 提供某种类型的自动阻止功能,它们有时也会导致此错误。禁用 VPN 适合我的情况。

        【讨论】:

          【解决方案9】:

          如果 src 是 https 并且证书已经过期——即使你已经做了一个例外——firefox 仍然会显示这个错误消息,如果你查看下面的请求,你可以看到确切的原因网络标签。

          【讨论】:

            【解决方案10】:

            我在firefox上遇到了同样的问题,当我搜索解决方案时,我没有找到任何东西,但后来我尝试从cdn加载脚本,它工作正常, 所以我认为您应该尝试从 CDN 链接加载它,我的意思是,如果您尝试加载您尚未创建的脚本。 因为在我的情况下,当尝试加载我的脚本时,它工作并成功导入,现在我不知道为什么,但我认为脚本中有来自网络的东西,所以试试cdn,你不会的不会失去任何东西。

            希望对你有帮助。

            【讨论】:

            • 请向读者解释什么是cdn链接,您可能会得到更多的点赞。
            【解决方案11】:

            我在同样的情况下运行,脚本在安全模式下正确加载。但是,禁用所有附加组件和其他 Firefox 安全功能并没有帮助。我尝试过的一件事(这就是我的解决方案)是从开发人员窗口临时禁用此特定请求的缓存。在我看到这是原因后,我清除了该站点的缓存,一切正常启动。

            【讨论】:

              【解决方案12】:

              这也可能是一个简单的语法错误。我有一个语法错误,它在 FF 而不是 Chrome 上抛出如下:

                  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js">
                      defer
                  </script>
              

              【讨论】:

                【解决方案13】:

                我刚刚在我的 ASP.NET 项目中构建 Facebook 登录时遇到了这个问题。

                原来是一个名为 Facebook Container 的扩展程序,它会阻止 the Facebook SDK script,除非您为相关站点添加例外。

                添加异常后,一切正常。

                【讨论】:

                  【解决方案14】:

                  今天遇到了同样的问题。事实证明,运行该站点的 VM 上没有剩余存储空间,因此不再完全处理请求。

                  清理完所有东西(尤其是与 Docker 相关的东西)后,一切都恢复正常了。

                  【讨论】:

                    【解决方案15】:

                    对我来说(Next.js 项目静态导出)是由于缓存。我进行了一次硬刷新 Ctrl + F5,一切都开始正常了。

                    【讨论】:

                      猜你喜欢
                      • 2018-03-13
                      • 1970-01-01
                      • 2013-03-18
                      • 2018-09-03
                      • 2019-04-11
                      • 2019-05-02
                      • 2011-01-28
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多