拒绝加载脚本'https://cdnjs.cloudflare.com/ajax/libs/jquery-csv/0.71/jquery.csv-0.71.min.js'

Posted

技术标签:

【中文标题】拒绝加载脚本\'https://cdnjs.cloudflare.com/ajax/libs/jquery-csv/0.71/jquery.csv-0.71.min.js\'【英文标题】:Refused to load the script 'https://cdnjs.cloudflare.com/ajax/libs/jquery-csv/0.71/jquery.csv-0.71.min.js'拒绝加载脚本'https://cdnjs.cloudflare.com/ajax/libs/jquery-csv/0.71/jquery.csv-0.71.min.js' 【发布时间】:2018-10-12 16:16:52 【问题描述】:

net.我正在使用 jQuery 执行一些操作。当我将代码部署到本地时,它工作正常。但是,当我将相同的代码部署到实时服务器中时,控制台中会出现一个错误:

拒绝加载脚本“https://cdnjs.cloudflare.com/ajax/libs/jquery-csv/0.71/jquery.csv-0.71.min.js”,因为它违反了以下内容安全策略指令:“script-src 'self' 'unsafe-inline'”。

请查看我的html代码以获取参考-:

<html>
<head>
    <title>Notifications</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <link type="text/css" rel="stylesheet" href="./Content/bootstrap.min.css" />
    <link type="text/css" rel="stylesheet" href="./Content/style.css" />


    <script type="text/javascript" src="./Scripts/jquery-1.10.2.min.js"></script>
    <script type="text/javascript" src="./Scripts/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-csv/0.71/jquery.csv-0.71.min.js"></script>
</head>
<body>

    <h2>Send</h2>

    <div>
        <textarea id="text_message" rows="12" cols="100" placeholder="Please Type Your Message"></textarea>


        <div style="margin: 5px">

            <input type="button" value="Submit" onclick="sendPush()" />
        </div>
        <div class="loadermodal" style="display: none">
            <div class="center">
                <img  src="./Content/img/ajax-loader.gif" />
            </div>
        </div>
    </div>

    <script>
        function sendMessage() 

            var comment = $.trim($("#text_message").val());
            if (comment != "") 
                // Show alert dialog if value is not blank
                //  alert(comment);
                $(".loadermodal").show();
                $.post("/PushNotification/sendPushNotificationToAll",  'message': comment ).done(function (data) 
                    var obj = jQuery.parseJSON(data);
                    if (obj.success != "0") 
                        alert("Message Sent Successfully");
                        $(".loadermodal").hide();
                    
                        else
                        alert("Error in Sending Push");
                );
            
            else 

                alert("Enter Some Text To Send A Message");

            
        



    </script>

</body>

在这里,在这段代码中,我创建了一个简单的文本框来编写消息和一个将执行脚本的按钮。这个脚本在我的本地运行良好,但是当我将相同的代码部署到我的应用程序服务器中时,这种类型控制台出现错误。

请分享您对此问题的看法

谢谢

【问题讨论】:

阅读有关 CSP here 的信息,然后在仍有问题时回来。对于在 Internet 上部署网站的每个人来说,CSP、CORS 等都是非常重要且必不可少的知识 嘿,我发现,当我尝试点击 google FCM 的 post api 时,此脚本失败。可能是 fcm api 的问题,通过它会出现此错误。如果是这样,那么我怎样才能在我的 .net 代码中解决这个问题。 【参考方案1】:

解决此错误最简单、更可靠的方法是将源代码从 url 复制到您的 /Scripts/ 目录并使用以下方法引用文件:

&lt;script type="text/javascript" src="./Scripts/jquery.csv-0.71.min.js"&gt;&lt;/script&gt;

看起来您已经在使用 jQuery 和引导文件执行此操作。此方法允许您将存储库中的所有依赖项保持在必要的版本。

除此之外,此错误是为了防止您的网络服务器从您不维护的位置加载潜在的恶意脚本。大多数 Web 服务器都有允许这样做的设置,但它们最初被禁用(有充分的理由)。

话虽如此,我仍然建议下载源代码并将其包含在您的项目中。

【讨论】:

好的,你的建议很好,但最近我发现这个脚本只有在我试图通过 jquery 进行 FCM post api 调用时才起作用。请分享你的建议,我该如何解决.net 代码的这个问题。 @Dheeraj 这听起来像是一个不同的问题,您应该创建一个新问题以获得对该问题的最大帮助。我的猜测是这个网页没有在网络服务器上运行。您是否正在运行 Web 服务器(IIS、Apache、Node)来查看此网页? 感谢 Philip 的回答,我正在使用 iis 网络服务器运行此页面

以上是关于拒绝加载脚本'https://cdnjs.cloudflare.com/ajax/libs/jquery-csv/0.71/jquery.csv-0.71.min.js'的主要内容,如果未能解决你的问题,请参考以下文章

内容安全策略 [错误] 拒绝加载脚本 safari

Vimeo 内容安全策略错误 - 拒绝加载脚本

vue.js http 获取 web api url 渲染列表

由于内容安全策略指令,扩展程序拒绝加载脚本

Chrome 扩展“拒绝加载脚本,因为它违反了以下内容安全策略指令”

Laravel 混合问题:日期选择器不起作用