JavaEE-面试-跨域问题

本文介绍了跨域的基本概念,解释了浏览器的跨域限制及其原因,并提供了几种解决跨域问题的方法,包括JSONP、CORS等技术手段。

跨域问题

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. 更多方式

参考

跨域问题汇总

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值