工作两年了,面试官问我什么是跨域,以及跨域怎么形成的,有哪些解决方案,我蒙了,我tm是真的菜。。。

工作了两年,面试官问我什么是跨域,以及跨域怎么形成的,怎么解决,我蒙了。。。


工作了两年,面试官问我什么是跨域,以及跨域怎么形成的,怎么解决,我蒙了。。。

什么是跨域?

跨域就是浏览器的同源策略导致的,同源策略:协议+域名+端口,只要有一个不同,就不是同源。
当前端部署在Nginx上监听的端口是8000.但是后端部署在tomcat上监听8080端口,那么浏览器访问前端页面的时候是8000端口,但是要到后端8080端口获取数据,这就不是同源了,就报跨域错误。

解决1:

将前端和后端同时用Nginx做反向代理,也就是浏览器访问的是nginx监听的端口,但是这个端口既不是前端的端口,也不是后端的端口,当请求来的时候再代理到前端的端口,然后ajax获取数据的时候,还是通过nginx代理去访问后端,相当对于浏览器来说一直访问的nginx的端口。
在这里插入图片描述

解决2:

将前端放到nginx,后端放到tomcat,然后nginx只代理后端端口,然后nginx再做跨域配置允许前端访问后端,同时允许携带cookie。
在这里插入图片描述

解决3:

前端后端设置jsonp请求,但是这种请求只允许get请求

解决4:

后端设置cros请求 就是加@Cros注解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值