仅在Firefox上“使用源的<script>加载失败”


90

我想将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=的<script>加载失败jQuery110207175825035737486_1503656391790&_ = 1503656391791 ”。

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

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


您是否尝试过刷新浏览器?..网址栏右侧的圆形箭头
scaisEdge

是的,我刷新了浏览器,当将URL复制/粘贴到另一个选项卡时,它会加载内容。
Narek Tootikian

另一个选项卡..在同一浏览器中工作吗?
scaisEdge

2
我的意思是无法加载并在控制台错误中显示的URL,在另一个选项卡中加载,但页面本身不起作用。
Narek Tootikian

它不应该抛出错误吗?源有效,并且响应的JSON格式错误。

Answers:


122

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

看来该脚本只是被Adblock Plus阻止了。

尝试禁用广告/脚本阻止程序(Adblock,uBlock Origin,Privacy Badger…)或重新定位脚本,使其与广告阻止程序的规则不匹配。

如果您没有安装这样的插件,请在安全模式下运行Firefox时重现问题。

  • 如果您无法在安全模式下重现它,则意味着您的问题已链接到您的插件或设置之一。
  • 否则,可能是另一个问题。确保您有与问题相同的错误消息。还要查看开发人员工具的“网络”标签,以检查是否列出了您的脚本(如果需要,请首先重新加载页面)。

5
伙计,怎么会这样想呢?-_-
linusg

1
@linusg我不记得确切,但是我知道我在dev工具中查看了network选项卡,我很困惑,因为即使加载了其余脚本,该脚本也没有任何内容。必须预先阻止某些东西。
Didier L

42
如果这些工具向控制台报告阻塞,那就太好了。
R. Schreurs '18年

1
@DidierL,如果我的评论已被反对10次,我会努力的:-)
R. Schreurs

2
我必须禁用Privacy Badger才能加载cdn.datatables.net。
Andrew Gaul

13

我遇到了同样的问题-对我来说,Firefox上的Privacy Badger是问题-不是adblocker。后代发贴


2
我有同样的问题。隐私
Bad


3

如上所述,这可能是您的浏览器扩展出现问题。禁用所有扩展程序,包括Adblock,然后再试一次,因为代码现在可以在我的浏览器中正常加载(Google Chrome-最新),因此这可能是您的问题。另外,是否尝试过像shudders IE这样的其他浏览器?众所周知,Adblock与域名冲突,其中包含trackmarket作为通用规则。尝试使用私人浏览模式安全模式


我尝试了您建议的所有可能的方法。我唯一想的是JavaScript引擎。必须有一些轻微的问题导致此问题。
Narek Tootikian

然后,它必须具有某些Firefox功能,请转到Bugzilla并打开票证。

3

错误消息出现了相同的问题(虽然网络应用程序不同),但事实证明这是.js文件的MIME类型,text/x-js而不是application/javascript由于负责服务于服务器的mime.types中的重复条目js文件。如果X-Content-Type-Options: nosniff设置了标头,这似乎正在发生,这使Firefox(和Chrome)阻止了js文件的内容。


2

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


2

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


2

如果VPN提供某种类型的自动阻止功能,有时也会引起此错误。禁用VPN适用于我的情况。


1

如果src是https并且证书已过期-即使您已设置了例外-firefox仍将显示此错误消息,并且您可以在网络选项卡下查看请求的确切原因。


1

我在firefox中遇到了同样的问题,当我搜索解决方案时我什么都没找到,但是后来我尝试从cdn加载脚本,它运行正常,所以我认为您应该尝试从cdn链接加载它,我的意思是,如果您尝试加载尚未创建的脚本。因为就我而言,当尝试加载属于我的脚本时,它可以正常工作并成功导入,现在我不知道为什么,但是我认为网络脚本中包含某些内容,因此只需尝试使用cdn,您就不会不会失去任何东西

希望对您有帮助。


0

这也可能是一个简单的语法错误。我遇到了一个语法错误,该错误发给FF,但没有Chrome,如下所示:

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

0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.