1.什么是跨域
违背了同源策略,就会产生跨域
客户端与服务器之间才会有跨域问题,服务端和服务端之间没有跨域问题
2.同源策略(同源策略是浏览器的安全限制)
(1)两个URL中的域名、协议和端口号相同,则称之为两个URL同源。
(2)如果URL的域名、协议、端口号出现不相同的,则不同源。
作用:防止不同网站之间共享 cookie,导致数据泄漏。
3.浏览器发送的请求分类
graph TD
浏览器HTTP请求 --> 普通的HTTP请求 --> script/img/link/form等标签发送请求
浏览器HTTP请求 --> 特殊的HTTP请求 --> ajax请求
4.解决跨域
(1)jsonp
- 原理:利用script标签可以跨域的特性进行跨域
- 特点:只支持get请求
- 使用
- 创建script标签
- 设置回调函数
- 设置script的src属性
- 添加body中生效
(2)cors
- 原理:http协议规定指定响应头字段可以跨域
- 特点:支持所有请求
- 使用:
- 服务器设置响应头
- access-control-allow-origin: *
- access-control-allow-origin: http://localhost:5000
- access-control-allow-methods: get, post, put, delete
- access-control-allow-headers: token
- access-control-max-age: 3648000
(3)服务器代理