此跨域問題只存在於瀏覽器端,App和小程序不存在跨域問題
參考地址:
manifest.json官方配置文檔: https://uniapp.dcloud.io/collocation/manifest?id=devserver
Chrome 調試跨域問題解決方案之插件篇: https://ask.dcloud.net.cn/article/35267
其實uni-app官方有解決跨域的辦法,官方推薦使用HBuilderX中內置的瀏覽器去預覽,在內置的瀏覽器中不會存在跨域問題,但是要是在Chrome 瀏覽器中預覽的話就會出現這個跨域問題,官方推薦使用Allow-Control-Allow-Origin: *插件的方式去解決,但是我試過這個插件,不知道是什么問題,並沒有效果,跨域問題依舊還是存在,后面再仔細的看了下文檔,看到了下面的提示。
uni-app
中 manifest.json->h5->devServer
實際上對應 webpack
的 devServer,鑒於 manifest 為 json 文件,故 webpack.config.js->devServer
配置項下的簡單類型屬性均可在manifest.json->h5->devServer
節點下配置,funciton 等復雜類型暫不支持。
所以我就在想是不是可以使用proxy配置反向代理的方式去實現跨域請求,代碼如下:
/* h5特有相關 */ "h5" : { "devServer" : { "port" : 8000, //端口號 "disableHostCheck" : true, "proxy" : { "/api" : { "target" : "https://xxx.xxxxx.cn", //目標接口域名 "changeOrigin" : true, //是否跨域 "secure" : false // 設置支持https協議的代理 } } } }
最后發現問題解決了。