前端vue打包項(xiàng)目,如何解決跨域問題
vue打包項(xiàng)目解決跨域
前段時(shí)間做一個(gè)vue打包成安卓和IOS的App,遇到了跨域問題,直接拿了之前項(xiàng)目的配置,卻不起作用。
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
?
@Configuration
public class CorsConfig implements WebMvcConfigurer {
?? ?
? ? @Override
? ? public void addCorsMappings(CorsRegistry registry) {
? ? ? ? registry.addMapping("/**")
? ? ? ? ? ? .allowedOrigins("*")
? ? ? ? ? ? .allowCredentials(true)
? ? ? ? ? ? .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
? ? ? ? ? ? .maxAge(3600);
? ? }
? ??
}但是還是不行,后面查明是因?yàn)橹绊?xiàng)目nginx和項(xiàng)目在一個(gè)服務(wù)器,而APP的前端是在移動(dòng)端的。解決方法有所不同,如下
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpHeaders;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
?
@Configuration
public class LakeAppConfigurer extends WebMvcConfigurerAdapter {
?
? ? @Override
? ? public void addCorsMappings(CorsRegistry registry) {
? ? ? ? registry.addMapping("/**")
? ? ? ? ? ? ? ? .allowedOrigins("*")
? ? ? ? ? ? ? ? .allowCredentials(true)
? ? ? ? ? ? ? ? .allowedHeaders("*")
? ? ? ? ? ? ? ? .allowedMethods("GET", "POST", "DELETE", "PUT", "OPTIONS")
? ? ? ? ? ? ? ? .exposedHeaders(HttpHeaders.SET_COOKIE).maxAge(3600L)
? ? ? ? ? ? ? ? .maxAge(3600);
? ? }
}完美解決。
vue項(xiàng)目解決跨域(打包上線無需手動(dòng)切換url)
1、在目錄config下的index.js中設(shè)置代理;
proxyTable: { //設(shè)置代理
'/api': { //使用"/api"來代替跨域地址139.xxx.xx
target: 'http://139.xxx.xx', //源地址
changeOrigin: true, //改變?cè)?
pathRewrite: { //路徑重寫
'^/api': 'http://139.xxx.xx'
}
}
},
2、分別配置開發(fā)環(huán)境和生產(chǎn)環(huán)境地址
在config目錄下dev.env.js中配置開發(fā)路徑:
module.exports = merge(prodEnv, {
NODE_ENV: '"development"',
API_HOST: '"/api"' // 配置代理路徑的符號(hào),增加的內(nèi)容
})
在config目錄下prod.env.js中配置開發(fā)路徑:
module.exports = {
NODE_ENV: '"production"',
API_HOST: '"http://139.xxx.xx"' // 生產(chǎn)環(huán)境地址,增加的內(nèi)容
}3、在組建中進(jìn)行使用,這里使用vue-resource;
//process.env.API_HOST 獲取當(dāng)前環(huán)境的api地址
methods:{
getData: function(){
this.$http.get(process.env.API_HOST + '/AiaaScadaSys/MonitorDB/info').then((response)=>{
this.$data.data_jianhuyi = response.body[0];
console.log(this.data_jianhuyi);
}, (response)=>{
return response.json();
});
},
}小結(jié):經(jīng)過這樣的配置后可以比較完美的解決跨域的問題而不用擔(dān)心在打包上線的時(shí)候還要手動(dòng)修改api地址,而且維護(hù)成本也低。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- vue解決跨域問題的幾種常用方法(CORS)
- vue請(qǐng)求后端數(shù)據(jù)和跨域問題解決
- vue項(xiàng)目配置代理如何解決跨域問題
- vue跨域問題:Access?to?XMLHttpRequest?at‘httplocalhost解決
- vue使用反向代理解決跨域問題方案
- 解決Vue前后端跨域問題的方式匯總
- vue3解決跨域問題詳細(xì)代碼親測(cè)有效
- Vue項(xiàng)目中該如何解決跨域問題
- vuecli3打包后出現(xiàn)跨域問題,前端配置攔截器無效的解決
- Vue3設(shè)置Proxy代理解決跨域問題
- VUE跨域問題Access to XMLHttpRequest at
- Vue解決跨域問題常見方法詳解
相關(guān)文章
vue實(shí)現(xiàn)echarts餅圖/柱狀圖點(diǎn)擊事件實(shí)例
echarts原生提供了相應(yīng)的API,只需要在配置好echarts之后綁定相應(yīng)的事件即可,下面這篇文章主要給大家介紹了關(guān)于vue實(shí)現(xiàn)echarts餅圖/柱狀圖點(diǎn)擊事件的相關(guān)資料,需要的朋友可以參考下2023-06-06
基于vue監(jiān)聽滾動(dòng)事件實(shí)現(xiàn)錨點(diǎn)鏈接平滑滾動(dòng)的方法
本篇文章主要介紹了基于vue監(jiān)聽滾動(dòng)事件實(shí)現(xiàn)錨點(diǎn)鏈接平滑滾動(dòng)的方法,非常具有實(shí)用價(jià)值,有興趣的可以了解一下2018-01-01
vue3+element-plus動(dòng)態(tài)路由菜單示例代碼
這篇文章主要介紹了vue3+element-plus動(dòng)態(tài)路由菜單示例代碼,代碼簡單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-11-11
vue?electron實(shí)現(xiàn)無邊框窗口示例詳解
這篇文章主要為大家介紹了vue?electron實(shí)現(xiàn)無邊框窗口示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
el-select如何獲取當(dāng)前選中的對(duì)象所有(item)數(shù)據(jù)
在開發(fā)業(yè)務(wù)場(chǎng)景中我們通常遇到一些奇怪的需求,下面這篇文章主要給大家介紹了關(guān)于el-select如何獲取當(dāng)前選中的對(duì)象所有(item)數(shù)據(jù)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11
vue?循環(huán)動(dòng)態(tài)設(shè)置ref并獲取$refs方式
這篇文章主要介紹了vue?循環(huán)動(dòng)態(tài)設(shè)置ref并獲取$refs方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01

