常见跨域问题解决方案
1、Php配置
header("ACCESS-CONTROL-ALLOW-ORIGIN:*");
header('Content-Type:application/json; charset=utf-8');
2、Node配置
const http = require('http');
const server = http.createServer((req, res) => {
// 设置 CORS 相关的响应头
res.setHeader('Access-Control-Allow-Origin', '*'); // 允许所有源访问
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
if (req.method === 'OPTIONS') {
// 处理预检请求
res.writeHead(204);
res.end();
} else if (req.method === 'GET') {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello, world!');
} else {
res.writeHead(404);
res.end();
}
});
server.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});
3、Nginx配置
server {
listen 80;
server_name api.example.com;
location / {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
proxy_pass http://backend-service; # 转发到后端服务
proxy_set_header Host $host; # 保留原始Host头信息
proxy_set_header X-Real-IP $remote_addr; # 传递真实IP地址
}
}