JS-跨域

208 阅读1分钟

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)服务器代理