如何解决:“拒绝运行 JavaScript URL,因为它违反了以下内容安全策略...”

Max*_*Max 6 html javascript

有人知道为什么我总是收到此消息吗?拒绝运行 JavaScript URL,因为它违反了以下内容安全策略指令:“default-src 'self'”。启用内联执行需要“unsafe-inline”关键字、哈希值(“sha256-...”)或随机数(“nonce-...”)。另请注意,“script-src”未明确设置,因此“default-src”用作后备。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width">
        <title>Title</title>
        <script type="text/javascript">
                function checkoutForm() {
                    var inputValue = document.querySelectorAll('.form-control')[0].value;
                    alert('Your input value: ' + inputValue);
                    window.open('/search/' + inputValue);
                }
        </script>
    </head>
    <body>
        <form class="navbar-search navbar-search-dark form-inline mr-3 d-none d-md-flex ml-lg-auto" method="get"
        action="javascript:checkoutForm()">
            <div class="form-group mb-0">
                <div class="input-group input-group-alternative">
                    <div class="input-group-prepend">
                        <span class="input-group-text"><i class="fas fa-search"></i></span>
                    </div>
                    <input class="form-control" placeholder="Search" type="search" value>
                </div>
            </div>
        </form>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

小智 5

Form 的action属性只能包含 URI。请参阅https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#Attributes

您的表单action属性包含 JavaScript 代码。

从您的代码中,我看到您正在尝试使用 JS 将搜索关键字附加到 URL。这不是必需的。由于您的表单method属性为get,因此在表单提交期间,搜索关键字将自动附加到 URL 中。

action属性设置为/search,这应该可以解决您的问题


小智 5

请删除下面的行

javascript:void(0);