JavaEE-面试-跨域问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/billycoder/article/details/88776505

跨域问题

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

参考

跨域问题汇总

猜你喜欢

转载自blog.csdn.net/billycoder/article/details/88776505