1 扫盲知识
1.1 Ajax为什么存在跨域问题
因为浏览器处于安全性的考虑不允许JS执行跨域请求。
1.2 浏览器为什么要限制JS的跨域访问
如果浏览器允许JS的跨域请求就很容易造成 CSRF (Cross-site request forgery),中文名称:跨站请求伪造,缩写为:CSRF/XSRF。
1.3 什么是CSRF
2 Ajax如何实现跨域访问
2.1 利用JSONP实现
技巧01:如果Ajax指定的数据类型为JSONP时,后台接口必须支持返回JSONP格式
3 SpringBoot设置支持响应数据类型为JSONP
3.1 写一个配置文件即可
package cn.xiangxu.demo_code.commons.config; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.servlet.mvc.method.annotation.AbstractJsonpResponseBodyAdvice; import org.springframework.web.servlet.mvc.method.annotation.AbstractMappingJacksonResponseBodyAdvice; /** * @author 王杨帅 * @create 2018-07-19 22:40 * @desc JSONP跨域支持配置 **/ @ControllerAdvice public class JsonpAdvice extends AbstractJsonpResponseBodyAdvice { public JsonpAdvice() { super("callback","jsonp"); } }