1. 程式人生 > >前後端分離 ajax同域重定向和跨域重定向

前後端分離 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