Javascript Axios CDN链接拒绝加载
我使用的是axios CDN链接,但它会导致此错误Javascript Axios CDN链接拒绝加载,javascript,axios,pug,Javascript,Axios,Pug,我使用的是axios CDN链接,但它会导致此错误 拒绝加载脚本'https://unpkg.com/axios/dist/axios.min.js'因为它违反了以下内容安全策略指令:“script src'self'”。请注意,“script src elem”未显式设置,因此“script src”用作回退。 我正在使用帕格模板引擎。 这是我的base.pug代码 我还尝试了另一件事: 添加一个标签来修改CSP,但是我不能修改“script src”,我不知道为什么。我想我只能给CSP添加更
拒绝加载脚本'https://unpkg.com/axios/dist/axios.min.js'因为它违反了以下内容安全策略指令:“script src'self'”。请注意,“script src elem”未显式设置,因此“script src”用作回退。
我正在使用帕格模板引擎。 这是我的base.pug代码 我还尝试了另一件事:
添加一个
标签来修改CSP,但是我不能修改“script src”,我不知道为什么。我想我只能给CSP添加更多的限制以使其更安全,但我不能放松它,可能是出于安全考虑。最后我要回答我自己的问题。首先,我们需要了解内容安全策略(CSP)。在这里,我使用头盔设置一些标题
app.use(
helmet.contentSecurityPolicy({
directives: {
defaultSrc: ["'self'", 'data:', 'blob:'],
fontSrc: ["'self'", 'https:', 'data:'],
scriptSrc: ["'self'", 'unsafe-inline'],
scriptSrc: ["'self'", 'https://*.cloudflare.com'],
scriptSrcElem: ["'self'",'https:', 'https://*.cloudflare.com'],
styleSrc: ["'self'", 'https:', 'unsafe-inline'],
connectSrc: ["'self'", 'data', 'https://*.cloudflare.com']
},
})
);
一切都结束了。
有一件事我应该告诉你,请检查你的域名你到底在使用什么,在我的情况下,我使用127.0.0.1,我不断通过localhost请求。因此,我设置为的头文件只适用于127.0.0.1,不适用于localhost。
最后一件事,如果您想使用“axios”,请通过“npm”使用,而不是通过任何CDN使用。您在该代码中没有CSP。您需要找到设置它的位置并进行更改。使用
指定的CSP不会覆盖HTTP头中的CSP。
const login=async (email,password)=>{
try{
console.log(email,password)
const res=await axios({
method:'POST',
url:'http://127.0.0.1:3000/api/v1/users/login',
data:{
email,
password
}
})
console.log(res);
}catch(err){
console.log(err.res)
}
}
document.querySelector('.form').addEventListener('submit',(e)=>{
e.preventDefault();
const email=document.getElementById('email').value;
const password=document.getElementById('password').value;
login(email,password)
})
app.use(
helmet.contentSecurityPolicy({
directives: {
defaultSrc: ["'self'", 'data:', 'blob:'],
fontSrc: ["'self'", 'https:', 'data:'],
scriptSrc: ["'self'", 'unsafe-inline'],
scriptSrc: ["'self'", 'https://*.cloudflare.com'],
scriptSrcElem: ["'self'",'https:', 'https://*.cloudflare.com'],
styleSrc: ["'self'", 'https:', 'unsafe-inline'],
connectSrc: ["'self'", 'data', 'https://*.cloudflare.com']
},
})
);