跨域问题及如何解决

时间:2024-10-27 21:50:46
  • 原理:在客户端和目标服务器之间添加一个代理服务器,所有的跨域请求都先发送到代理服务器,代理服务器再向目标服务器发起请求,并将结果返回给客户端。
  • 优点:可以隐藏真实的API地址,增加安全性。
  • 缺点:增加了服务器的负担,可能影响性能。
  • 示例代码(客户端)
    fetch('/api/data')
    .then(response => response.json())
    .then(data => console.log(data));
    
  • 示例代码(服务器端,使用Node.js + Express)
    const express = require('express');
    const app = express();
    const request = require('request');
    
    app.get('/api/data', (req, res) => {
      request('http://example.com/data', (error, response, body) => {
        if (!error && response.statusCode === 200) {
          res.json(JSON.parse(body));
        }
      });
    });