uni-app第一次入手踩坑路过
关于h5跨域问题总结了几个点
1.跨域配置请在manifest.json中写,其他的config修改貌似都不生效的
``"devServer" : {
"https" : false,
"disableHostCheck" : true, // 开启可以用自己的域名
"proxy":{
"/web":{
"target": "http://127.0.0.1:8100",//代理地址
"changeOrigin": true,// 如果接口跨域,需要进行这个参数配置
//ws: true, // proxy websockets
//pathRewrite方法重写url
"pathRewrite": {
"^/web": "/"
//pathRewrite: {'^/api': '/'} 重写之后url为 http://127.0.0.1:8100/xxxx
//pathRewrite: {'^/api': '/api'} 重写之后url为 http://127.0.0.1:8100/api/xxxx
}
}
}
}
2. luch-request组件中的apiBaseUrl域名配置一定要和网站启动的一致,端口号要带上,或者是不写会自动填充当前域名的
export const apiBaseUrl = 'http://localhost:8080'
3.配置nginx允许跨域,我是配置了的,不知道不配置能不能过,目前没时间试试
4. 尝试发出请求,如果发现还是跨域,请检查请求头requst头部的Host,Origin,Referer是否一致
我的是这样的
Host: localhost:8080
Origin: http://localhost:8080
Referer: http://localhost:8080/
总结:头一次使用uni-app也是头一次遇到跨域这样的,因为luch-request组件性质和COOL-UNI的原因,我也不做任何评论了,总之最好是能用官方的框架开发最好的,其次luch-request组件是一个十分优秀的组件只是我搭配了一个半桶水的二开框架。这个问题困扰一整天,我从congfig配置到manifest.json改了无数次,也看了一天的文档和例子,百度也翻完了,最后没想到居然在请求头这出了问题,也庆幸我之前有过协议方面的经验,不然也不知道要忙多久,踩过的路就知道了。我自己的理解就那么多了,如果有更好的解决方案或者意见,欢迎留言交流,不论技术高低总会有gei到的点的
`
0 个评论
要回复文章请先登录或注册