JavaEE-面试-跨域问题

跨域问题

1,跨域是前端工程师必备的技能点,后端开发人员也需要知道。
2,本篇博客提供基本的思路,面试的时候可以参考的一个思路。

什么是跨域

协议、域名、端口任意不同,就是不同域。

什么是跨域问题

浏览器为了安全,对js进行跨域访问资源的时候做了一些限定。

  • js可以通过跨域请求返回一个js。

  • js不能跨域请求json数据,但是这个在分布式系统是非常常见的需求

怎么解决

解决方案好多好多,我们课程里面讲解了几种,开发过程中用jsonp或者cros方式即可。

1. 原生方式

看懂原生方式,就理解jsonp的原理了。

前端

在这里插入图片描述

后台

返回如下格式的数据
在这里插入图片描述

2. ajax的jsonp方式

前端

在这里插入图片描述

后台

返回的真实数据,需要拼接为一个方法的参数。

在这里插入图片描述

3. cros方式

是什么

CORS是"跨域资源共享"(Cross-origin resource sharing)。CORS需要浏览器服务器同时支持。

允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。

实现CORS通信的关键是服务器

前端请求

无需处理

后台返回

添加2个请求头
在这里插入图片描述

4. spring mvc对cros的支持

前端

无需处理

后台

通过注解,替换在reponse中添加响应头的方式。
在这里插入图片描述

5. 更多方式

参考

跨域问题汇总

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值