mapboxgl.accessToken = 'xxxxxxxx';
var map = new mapboxgl.Map({
container: 'map', // container ID
style: 'mapbox://styles/mapbox/streets-v11', // style URL
});
doctype html
html
head
block head
meta(charset='UTF-8')
meta(name='viewport' content='width=device-width, initial-scale=1.0')
link(rel='stylesheet' href='/css/style.css')
link(rel='shortcut icon', type='/image/png' href='/ img/favicon.png')
link(rel='stylesheet', href='https://fonts. googleapis.com/css?family=Lato:300,300i,700')
title Natours | #{title}
body
//- HEADER
include _header
//- CONTENT
block content
h1 this is a placeholder heading
//- FOOTER
include _footer
script(src='/javascript/mapbox.js')
拒绝加载脚本'https://api.mapbox.com/mapbox-gl-js/v2.1.1/mapbox-gl.js',因为它违反了以下内容安全策略指令:脚本-src'自己'。请注意,没有显式设置脚本-src-elem,因此脚本-src被用作后备选项。
这个特殊的错误是一个CSP错误,我个人已经回答了git回购以及udemy讲座。.尽管如此,这里它再次为Stackoverflow版本:)
将以下代码添加到app.js
app.use((req, res, next) => {
res.setHeader(
'Content-Security-Policy',
"script-src 'self' api.mapbox.com",
"script-src-elem 'self' api.mapbox.com",
);
next();
});
针对@Veera最初的问题,相信你在选修课程时遇到过这个问题:Node.js、Express、MongoDB
如前所述,它是一个CSP内容安全策略,防止浏览器从不支持的来源加载内容(图像、脚本、视频等)。
您可以通过在项目中添加api.mapbox.com作为受支持的源来解决此问题。下面的代码是我的路由器文件,用于处理使用Mapbox的路由。
const express = require('express');
const viewController = require('../controllers/viewController');
const CSP = 'Content-Security-Policy';
const POLICY =
"default-src 'self' https://*.mapbox.com ;" +
"base-uri 'self';block-all-mixed-content;" +
"font-src 'self' https: data:;" +
"frame-ancestors 'self';" +
"img-src http://localhost:8000 'self' blob: data:;" +
"object-src 'none';" +
"script-src https: cdn.jsdelivr.net cdnjs.cloudflare.com api.mapbox.com 'self' blob: ;" +
"script-src-attr 'none';" +
"style-src 'self' https: 'unsafe-inline';" +
'upgrade-insecure-requests;';
const router = express.Router();
router.use((req, res, next) => {
res.setHeader(CSP, POLICY);
next();
});
router.route('/').get(viewController.getOverview);
router.route('/tour/:slug').get(viewController.getTour);
router.route('/login').get(viewController.getLoginForm);
module.exports = router;
我今天碰到了这个问题。我知道你现在可能已经得到了回答。但下面还是你的答案:归功于东林-
https://www.udemy.com/course/nodejs-express-mongodb-bootcamp/learn/lecture/15065656#questions/12020720
发送CSP头以允许从mapbox加载脚本。样本如下:
exports.getTour = catchAsync(async (req, res, next) => {
const tour = await Tour.findOne({ slug: req.params.slug }).populate({
path: 'reviews',
fields: 'review rating user'
});
res
.status(200)
.set(
'Content-Security-Policy',
"default-src 'self' https://*.mapbox.com ;base-uri 'self';block-all-mixed-content;font-src 'self' https: data:;frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src https://cdnjs.cloudflare.com https://api.mapbox.com 'self' blob: ;script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests;"
)
.render('tour', {
title: `${tour.title} Tour`,
tour
});
});
问题内容: 我在.each循环内有以下ajax调用,该调用从服务器加载多个.swf文件: 除IE之外,此功能在所有浏览器上都具有吸引力。有些.swf文件已加载,有些则没有。 我收到的错误如下: 由于错误c00ce514,无法完成操作。 我搜索了这个错误,发现这是由于字符集问题或类似的问题引起的;有些人提供了有关html / xml文件的解决方案,但是我不确定如何为.swf文件修复此问题。有任何想法
一段时间以来,我一直在使用Maven和Vaadin 6开发Java应用程序。 我现在需要添加一个附加组件(Vaadin calendar 1.3.0-适用于Vaadin 6)。 我已经在我的pom.xml文件中添加了maven依赖和存储库,正如所附链接上建议的那样,Maven确实下载了我的依赖jar文件,它位于WEB-INF/lib目录中。 但是,当我尝试加载加载页时,我得到以下错误消息(在浏览器
我刚刚用,它安装在 问题是,如果我试图用获取它的版本,我会收到一个权限被拒绝的错误。 <代码> 位于路径中 和没有结果,因为找不到它。 如果重新安装:
我试图access_token使用这里的说明developers.google.com/accounts/docs/OAuth2InstalledApp(我已经非常努力地遵循),但继续redirect_uri_mismatch错误。我做错了什么? 首先,我使用控制台创建一个已安装的应用程序/其他( 本机应用程序的客户端ID 客户端ID…客户端机密…重定向URI 使用浏览器成功获取授权码 https
我已经找到了这个已经帮了我的忙,但是在我的代理中添加了这样的标题之后。js公司: 在fetch()中,我还添加了标头以确保其正常工作: 我仍然收到错误:TypeError:“尝试获取资源时出现NetworkError。” <代码>此。setState({contacts:data})应该存储由后端Java程序交付的JSON对象。JSON对象位于localhost:8080/api,只是字符串 我的
尝试连接到SQL服务器2014时出错。我使用JRE7和sqljdbc4-4.0.jar 以下是我的java代码: 以下是完整的堆栈跟踪: JAVAext.dirs:C:\Cisco\CallStudio\eclipse\jre\lib\ext;C:\WINDOWS\Sun\Java\lib\ext-com。微软sqlserver。jdbc。SQLServerException:驱动程序无法使用安全