CORS PPT:跨域资源共享全面指南
CORS(跨域资源共享)PPT 全面指南
什么是CORS?
CORS(Cross-Origin Resource Sharing)是一种浏览器机制,允许网页从不同源(域名、协议或端口)请求资源。它通过HTTP头部实现,是一种安全策略,用于限制跨域请求。
为什么需要CORS?
浏览器的同源策略会阻止跨域请求,但现代应用常需调用不同域下的API(如前后端分离)。CORS提供了一种受控的放松方式。
CORS工作机制
典型流程:
- 浏览器发起跨域请求,自动添加
Origin头部。 - 服务器响应时设置
Access-Control-Allow-Origin等头部。 - 浏览器根据响应头决定是否允许访问。
关键HTTP头部
- Access-Control-Allow-Origin:指定允许的源,如
*或具体域名。 - Access-Control-Allow-Methods:允许的HTTP方法(GET, POST等)。
- Access-Control-Allow-Headers:允许的自定义头部。
- Access-Control-Allow-Credentials:是否允许携带凭证(如cookies)。
- Access-Control-Max-Age:预检请求的缓存时间。
简单请求与预检请求
简单请求:使用GET、POST或HEAD,且无自定义头部,content-type为text/plain、multipart/form-data或application/x-www-form-urlencoded。直接发送实际请求。
预检请求:非简单请求(如PUT、DELETE或自定义头部),浏览器先发送OPTIONS请求(预检),服务器确认后发实际请求。
配置示例(Node.js + Express)
const express = require('express');
const cors = require('cors');
const app = express();
// 允许所有源
app.use(cors());
// 或自定义
app.use(cors({
origin: 'https://example.com',
methods: ['GET', 'POST'],
credentials: true
}));
安全注意事项
- 避免使用
*,明确指定可信源。 - 谨慎使用
Access-Control-Allow-Credentials: true,此时origin不能为*。 - 限制允许的HTTP方法和头部。
- 利用
Access-Control-Max-Age减少预检请求次数。
常见问题与调试
浏览器控制台报错“No 'Access-Control-Allow-Origin' header”是典型问题。检查服务器是否正确设置响应头,或使用浏览器插件(如CORS Unblock)进行测试(仅开发环境)。
PPT演示建议
将上述内容分为5页:
- 第1页:CORS定义与重要性
- 第2页:工作机制与HTTP头部
- 第3页:简单请求 vs 预检请求
- 第4页:后端配置示例(代码)
- 第5页:安全与调试
总结
CORS是跨域开发的核心知识。掌握其原理和配置,能有效解决前后端分离中的跨域问题。通过PPT演示,可更直观地传达要点。