前后端分离 ajax同域重定向和跨域重定向

前提:前端控制页面跳转,后端只提供接口,返回json格式数据,因此前端请求均是ajax请求

同域

服务器端重定向:response.sendRedirect(url)
ajax请求接收到状态码:302,同时response header 中增加Location字段,浏览器会自动重定向到该接口地址,之后再通知ajax接收重定向后的接口返回信息,ajax解析返回信息,控制页面跳转
chrome和火狐均支持

跨域

response.setHeader(“Access-Control-Allow-Origin”,"*");
response.setHeader(“Access-Control-Allow-Headers”,“x-requested-with,content-type”);
服务器端重定向:response.sendRedirect(url)
chrome浏览器支持自动重定向,火狐不支持
全部支持的写法:回写response的响应内容,附加状态码,ajax解析状态码,前端控制页面跳转
前提:重定向的地址跟之前ajax请求的地址是同源的

参考链接:https://www.cnblogs.com/wonyun/p/5696838.html
http://www.ruanyifeng.com/blog/2016/04/cors.html

nginx配置反向代理,把前端域名映射到后端域名,也可以解决跨域问题

参考链接:https://blog.csdn.net/boonya/article/details/73776789
https://blog.csdn.net/ZZY1078689276/article/details/80190866

猜你喜欢

转载自blog.csdn.net/sinat_30075299/article/details/85001989