1. 程式人生 > >vue+axios+httpsevlet解決前端跨域的問題

vue+axios+httpsevlet解決前端跨域的問題

一  通過webpack中的proxyTable機制,用nodejs伺服器進行轉發。但只侷限於生產環境。

proxyTable: {

'/api': {

target: 'http://172.21.73.144:30010',

changeOrigin: true,

pathRewrite: {

'^/api': '/'

}

}

},

二  在後端httpsevlet的請求中加入

resp.setHeader("Access-Control-Allow-Origin", "*");
resp.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PUT");
resp.setHeader("Access-Control-Max-Age", "3600");
resp.setHeader("Access-Control-Allow-Headers", "Content-Type,accesstoken");
resp.setHeader("Access-Control-Allow-Credentials", "true");

但axios當傳送請求時會發兩次。第一次傳送options請求。主要時驗證身份,第二次傳送具體的GET或POST請求。

而httpsevlet要在所有的請求中加上上面這段程式碼。解決方法:

1、在filter中新增。在過濾器中驗證。

2、在server()方法中新增、server方式先於其他請求方法執行,在其中起到排程的作用。

三   通過ngnix伺服器的重定向來解決跨域問題。