前提:前端控制页面跳转,后端只提供接口,返回json格式数据,因此前端请求均是ajax请求
contentType为applicon/json的ajax请求,浏览器会首先发送预检请求(请求方法为OPTIONS)
filter>>interceptor>>controller
同域
服务器端重定向:response.sendRedirect(url)
ajax请求接收到状态码:302,同时response header 中增加Location字段,浏览器会自动重定向到该接口地址,之后再通知ajax接收重定向后的接口返回信息,ajax解析返回信息,控制页面跳转
chrome和火狐均支持
跨域
浏览器预检请求(请求方法为OPTIONS),无法识别跨域的后端重定向
解决跨域和预检请求重定向问题
filter针对请求方法为OPTIONS的请求,返回200
spring配置文件配置mvc:cors
经验证:谷歌,火狐,360极速,搜狗浏览器均支持
参考链接:https://www.cnblogs.com/wonyun/p/5696838.html
http://www.ruanyifeng.com/blog/2016/04/cors.html
https://segmentfault.com/a/1190000009971254
nginx配置反向代理,把前端域名映射到后端域名,也可以解决跨域问题
参考链接:https://blog.youkuaiyun.com/boonya/article/details/73776789
https://blog.youkuaiyun.com/ZZY1078689276/article/details/80190866