文档介绍:SpringMvc的跨域解决方案
 
   
 
 
 
 
 
 
 
     
 
 
 
 
 
阅读本文大概需要 分钟。
文章来源:/   
 
   
SpringMvc的跨域解决方案
 
   
 
 
 
 
 
 
 
     
 
 
 
 
 
阅读本文大概需要 分钟。
文章来源:/ 作 者:王森
什么是跨域
一句话:同一个ip、同一个网络协议、同一个端口,三者都满足就是同一个域,否则就是跨域。
为什么非得跨域
基于两个方面:
a. web应用本身是部署在不同的服务器上 --- 前后端分离 web应用本身是部署在不同的服务器上,对应的域名也就有所不同 比如百度。 主域名:/ 二级域名:/, /,/ 需要在不同的域之间,通过ajax方式互相请求,是非常常见的需求。
spring使用jsonp解决跨域
Spring 4中增加了对jsonp的原生支持,只需要ControllerAdvice就可以开启,方法如下: 首先新建一个Advice类,我们叫做“JsonpAdvice”,然后在里面定义接收jsonp请求的参数key:
package ;
import ;
import ;
/**
* 使用jsonp实现跨域的支持
* ***@author WangSen(******@)
* ***@Date 2018年1月8日
*/
***@ControllerAdvice("")
public class JsonpAdvice extends AbstractJsonpResponseBodyAdvice {
public JsonpAdvice() {
super("callback");
}
}
***@ControllerAdvice("")指定作用的包名 supper("callback")指定的是url中callback: ?callback=successCallback
注意: 我们还可以重写AbstractJsonpResponseBodyAdvice中的feforeBodyWriteInternal方法: 做到实现url携带callback就返回jsonp格式,没有就返回正常格式
controller