前端訪問後臺介面每次產生新的session
阿新 • • 發佈:2019-01-14
公司專案中前後端分開開發,前端訪問後臺介面時產生ajax跨域問題以及每次訪問介面時的session都是不一樣的問題,記錄下來備忘(後臺用的jfinal框架,前端用vue開發)
參考 http://blog.csdn.net/qq_27373459/article/details/77099207
建立一個攔截器攔截所有請求 :
public class AjaxIntercepter implements Interceptor {@Override
public void intercept(Invocation inv) {
HttpServletResponse response = inv.getController().getResponse();
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "0");
response.setHeader("Access-Control-Allow-Credentials", "true");
inv.invoke(); //新增攔截器的 放行方法
}
}
在前端的ajax請求中新增紅色程式碼可解決ajax,session 跨域問題
$.ajax({ url:url, //加上這句話 xhrFields: { withCredentials: true }, crossDomain: true,success:function(result){ alert("test"); }, error:function(){ } });
這樣前端訪問後臺介面時sessionId 將保持同一個,方便我們將使用者資訊儲存在session中