最近學習uni-app,從創建項目到代碼運行都很順利,但是在接入後端服務請求的時候,跨域問題出現了,根據官方或者廣大網友的集思廣益,增加了跨域的配置,配置如下:
"h5" : {
"devServer" : {
"port" : 8080,
"disableHostCheck" : true,
"proxy" : {
"/api" : {
"target" : "http://192.168.0.172:8800/",
"changeOrigin" : true,
"secure" : false,
"pathRewrite" : {
"^/api" : "/"
}
}
}
}
}
根據網絡查詢,所有這樣配置的人都成功解決跨域問題,但是在我運行後跨域問題是解決了,但是post請求被轉發爲get請求,參數也不見了,鬱悶,搜素各種帖子,沒有一個靠譜的解決,或者根本就沒有遇到這個問題;但是在nginx代理轉發的帖子中發現了問題的根源所在–https,https會把轉發的http請求全部轉爲get請求。但是我仔細看了請求路徑,沒有用到https,感覺這個問題很靈異。然後在視圖查看配置文件的時候發現:
hbuilderx默認是支持啓用https協議的,也就是說默認在使用https進行請求轉發;於是勾掉這個選項,運行代碼,跨域問題徹底解決;
完整的h5配置如下:
"h5" : {
"devServer" : {
"port" : 8080,
"disableHostCheck" : true,
"proxy" : {
"/api" : {
"target" : "http://192.168.0.172:8800/",
"changeOrigin" : true,
"secure" : false,
"pathRewrite" : {
"^/api" : "/"
}
}
},
"https" : false //沒錯這個就是罪魁禍首,設置爲false就好了
}
}