SpringMVC的跨域解决方案
作者:王森
来源:
什么是跨域
一句话:同一个ip、同一个网络协议、同一个端口,三者都满足就是同一个域,否则就是跨域。
为什么非得跨域
基于两个方面:
a. web应用本身是部署在不同的服务器上
--- 前后端分离
web应用本身是部署在不同的服务器上,对应的域名也就有所不同
比如百度。
主域名:/
二级域名:/, /,/
需要在不同的域之间,通过ajax方式互相请求,是非常常见的需求。
spring使用jsonp解决跨域
Spring 4中增加了对jsonp的原生支持,只需要ControllerAdvice就可以开启,方法如下:
首先新建一个Advice类,我们叫做“JsonpAdvice”,然后在里面定义接收jsonp请求的参数key:
***@ControllerAdvice("")指定作用的包名
supper("callback")指定的是url中callback:
?callback=successCallback
注意:
我们还可以重写AbstractJsonpResponseBodyAdvice中的feforeBodyWriteInternal方法:
做到实现url携带callback就返回jsonp格式,没有就返回正常格式
controller中
controller中的代码正常编写就OK,不用修改任何东西。
!
jquery ajax
SpringMVC的跨域解决方案 来自淘豆网m.daumloan.com转载请标明出处.