CORS(跨源资源共享)是一种安全机制,用于限制Web页面上的脚本对其他域的访问。当浏览器尝试从一个源(域)加载资源到另一个源时,如果没有得到目标服务器的明确许可,浏览器就会阻止这个请求,这就是CORS策略的作用。
CORS涉及几个关键概念:
当出现“from origin 'null' has been blocked by CORS policy”错误时,通常是因为浏览器尝试从一个没有明确源(如file://协议打开的本地文件)加载资源,而服务器没有设置允许这种跨域请求。
在服务器端添加适当的CORS响应头,例如在Node.js中使用Express框架:
const express = require('express');
const app = express();
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*'); // 允许所有源
res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization');
next();
});
app.get('/data', (req, res) => {
res.json({ message: 'This is data from the server.' });
});
app.listen(3000, () => console.log('Server running on port 3000'));
如果是在本地测试,可以考虑使用本地服务器而不是直接打开文件,例如使用http-server:
npx http-server -p 8080
然后在浏览器中通过http://localhost:8080
访问你的应用。
Access-Control-Allow-Origin
设置为*
,特别是在处理敏感数据时。通过上述方法,可以有效解决CORS策略导致的跨域请求问题。
没有搜到相关的文章