一般vue项目中异步请求代码如下:
调用异步请求:
axios.get('/api/index.json').then()
config/index.js 中配置代码如下:
proxyTable: {
'/api': {
target: 'http://23.8.32.xxx',
pathRewrite: {
'^/api': '/static/mock'
}
}
},
npm run dev
后在浏览器中是可以访问到数据。
但是打包成apk
就不一样了,我们通过命令cordova serve android
,然后在浏览器里面通过http://localhost:8000/android/www/index.html#/
可以访问该页面(就像在手机中看到页面一样),对应的异步请求变成了http://localhost:8000/android/www/api/index.json
,这个请求会返回404
,那么我们该如何修改上面调用异步请求的代码
和异步请求配置相关的代码
呢?
proxyTable
是在开发模式下才生效的,你通过cordova serve android
访问的是打包后生产环境使用的index.html
文件,所以代理是不生效的。请求url可以直接写服务器上的绝对地址就会访问正确的地址了,
如果开发环境和生产环境要请求不同的地址的话,可以自己做一下判断。