1.新建根目录下面utils/request.js
export default (url,data={},method='GET')=>{
return new Promise((resolve,reject)=>{
uni.request({
url:cofig.baseUrl+url,
data,
method,
success(res) {
resolve(res.data);
},
fail(err) {
reject(err);
}
})
})
}
2.再建一个utils/config.js:
//需要请求的路径列如:http://localhost:7788
export default {
baseUrl: 'http://localhost:7788'
}
3.
//将cofig引入到request.js中
import cofig from './config.js'
4.
//2.请求数据测试一下
async getIndexData() {
let {
data: res
} = await http('/getIndexData');
console.log(res);
}
5.运行到h5页面会产生了跨域,因为我们后台的端口是localhost:7788
小程序里不存在跨域,但是如果是H5的项目存在跨域:
根目录下创建 vue.config.js:
module.exports = {
devServer: {
proxy: {
'/api': {
target: 'http://localhost:7788',
ws: true,
changeOrigin: true,
pathRewirte:{ //路径重写
'^/api':''
}
},
'/foo':{
target:'http://localhost:3001'
}
}
}
}
6.修改发送请求:
//2.请求首页数据
async getIndexData() {
// #ifdef MP-WEIXIN
let {data:res} = await http('/getIndexData'); //小程序
// #endif
// #ifdef H5
let {data:res} = await http('/api/getIndexData'); //h5
// #endif
console.log(res);
}
7.untils/request.js需要修改
import config from './config.js';
export default (url, data = {}, method = 'GET') => {
return new Promise((resolve, reject) => {
uni.request({
// #ifdef MP-WEIXIN
url: config.baseUrl + url, //小程序
// #endif
// #ifdef H5
url,
//#endif
data,
method,
success: (res) => {
resolve(res)
},
fail: (erro) => {
reject(erro)
}
})
})
}
如果在h5中还是不行
可以按照一下方法添加一个配置:
"h5": {
"title": "Test",
"devServer": {
"port": 8082,
"disableHostCheck": true,
"proxy": {
"/api": {
"target": "http://localhost:7788",
"changeOrigin": true,
"secure": false,
"pathRewrite": {
"^/api": ""
}
}
}
}
}
//port:'你自己电脑的路径端口号'