elementui-admin 跨域並攜帶cookie

1、下載完elementui-admin模板之後,找到utils文件目錄下的 api.js 文件

                       

2、在創建axios實例下面添加一行代碼 ,如圖所示

                   

service.defaults.withCredentials = true

   添加過後,前端配置完成 。

3、修改相對應後臺的跨域請求

   後端需要設置Access-Control-Allow-Origin(值爲項目的前臺地址,例如: http://ip),

   並且設置header('Access-Control-Allow-Credentials: true')

   後端代碼奉上:

package com.cmbird.config;

import org.springframework.stereotype.Component;
import javax.servlet.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 跨域
 * @author zyj
 * @date 2019-12-12 17:32:42
 */
@Component
public class CorsFilter implements Filter {

    final static org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(CorsFilter.class);

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        // todo 修改服務器IP 不然跨域無法獲取 cookie
        response.setHeader("Access-Control-Allow-Origin", "http://ip");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "X-Requested-With,content-type");
        response.setHeader("Access-Control-Allow-Credentials", "true");
        chain.doFilter(req, res);
    }

    @Override
    public void init(FilterConfig filterConfig) {
    }

    @Override
    public void destroy() {
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章