1.什么是跨域?
前提知识:在解释跨域之前,我们需要先了解什么是同源策略?同源策略是由 Netscape(网景) 提出的一个著名的安全策略,现在所有支持 JavaScript 的浏览器都会使用这个策略。所谓的同源指的是网页的协议,域名,端口都相同。
网页域名示例: http://www.baidu.com:80 (提示:80 为默认端口,可以省略,若为其它端口则必须显示定义)。
非同源限制:
1.cookie、localStorage、indexDB无法读取
2.DOM和js对象无法获取
3.无法发送Ajax请求
跨域就是一个域名的网页向另外一个域名的网页发起请求,其中协议,域名,端口任一不同,都是跨域。
2.怎么解决跨域问题?
解决方案
一,代理服务器
基于Node.js配置反向代理
使用Node.js作为前端代理:
- 在Node.js中创建一个服务器,用于接收前端的请求并转发到目标服务器。
- 在前端代码中,将请求发送给Node.js服务器,而不是直接发送给目标服务器。
- Node.js服务器接收到请求后,将请求转发给目标服务器,并将目标服务器的响应返回给前端。
下面是一个简单的示例代码,使用Express框架创建Node.js服务器:
const express = require('express');
const request = require('request');
const app = express();
// 设置允许跨域访问