前端(8080)访问后台(80)跨域

 1.什么是跨域

跨域 就是跨域名来访问的数据

域名: www.baidu.com(ip 192.168.0.1)  www.taobao.com(ip 192.168.0.2)   -- 属于跨域

​          localhost:8080    --- >localhost:80 --(属于跨域)

​          www.wenku.baidu.com   www.tieba.baidu.com  --二级域名 -- 跨域

​         192.168.0.3           192.168.0.4 

 2. 跨域不一定存在跨域问题

什么情况下存在跨域问题:

<a href="www.jd.com">

​        跨域问题: 浏览器 针对ajax请求的时候,如果不同的服务,存在跨域 

浏览器机制: 同源策略拦截跨域的访问


3 怎么解决跨域问题? --面试题

(1) jsonp方式 --json变种 

​    localhost/department/list  -- > <scprit src="/localhost/department/list">

 缺点:

​        需要服务支持

​        只能发起GET**请求**

(2) nginx 反向代理 --现在不用

​        以前:![image-20200103102359784](笔记.assets/image-20200103102359784.png)

   nginx方案:

​            ![image-20200103102429949](笔记.assets/image-20200103102429949.png)

​        缺点:需要安装nginx才能使用

(3)方案3   -- 服务器允许cors这些请求

#### 什么是cors

**同源**(相同协议,相同域名,相同端口)

cors: 一个w3c标准 跨域资源共享"(Cross-origin resource sharing)


服务器怎么允许这些 / get/post/delete/put/options /patch

解决方案:

​    (1)写一个配置类

​    (2)spring通过注解支持

​        CrossOrigin  注意: 4.2版本以后支持
 

@Controller
@RequestMapping("/department")
@CrossOrigin //解决跨域问题
public class DepartmentController {
}
发布了6 篇原创文章 · 获赞 1 · 访问量 199

猜你喜欢

转载自blog.csdn.net/qq_41972951/article/details/103821618