uniapp 封装 request 并 配置跨域,( 本地 + 线上 + 封装 )

找到上面这个 文件,不管是用 命令创建 还是 用 HBX 创建,都一样会有这个文件的,然后跟着截图复制粘贴就好了。
// 这是配置本地能跨域的,或者你可以直接让后端给你设置请求头,避免了跨域。
"devServer" : {
// "disableHostCheck" : true, //禁止访问本地host文件 ( 个人建议注释掉这一行,不然很有可能会请求不到 )
// "https" : true,
// "port" : 8080,
"proxy" : {
"/api" : {
"target" : "http://192.168.0.202:8080", //这里使用后端服务器的地址
"changeOrigin" : true, //是否跨域
"secure" : true, // 是否支持 https 协议的代理
"pathRewrite" : {
"^/api" : ""
}
}
}
}
// 配置线上的文件环境,如图所示。

在根目录底下,创建一个 vue.config.js 文件,内容如下。 依旧是复制粘贴 改 地址就好。
module.exports = {
/* 部署生产环境和开发环境下的URL:可对当前环境进行区分,baseUrl 从 Vue CLI 3.3 起已弃用,要使用publicPath */
publicPath: "",
assetsDir: "static/lipin",
outputDir: "dist",
runtimeCompiler: true,
productionSourceMap: false,
/* webpack-dev-server 相关配置 */
"devServer" : {
// "disableHostCheck" : true, //禁止访问本地host文件
// "https" : true,
// "port" : 8080,
"proxy" : {
"/api" : {
"target" : " 后端接口地址 ",
"changeOrigin" : true, //是否跨域
"secure" : true, // 是否支持 https 协议的代理
"pathRewrite" : {
"^/api" : ""
}
}
}
}
}
不封装方法的话可以立马看见效果
uni.request({
url: '/api/auth/login',
method:'post',
data: this.login
}).then(data=>{
console.info(data[1].data)
// uni.redirectTo({
// url : '../homePage/index',
// })
this.$refs.uTips.show({ title: '登陆成功', type: 'success', duration: '2300'})
}).catch(()=>{
this.$refs.uTips.show({ title: '登录失败', type: 'success', duration: '2300'})
})
再之后封装 request 文件 , 在根目录下 创建一个 units 文件夹,文件夹底下再创建一个 request.js 文件

export default function request(config) {
let Authorization = uni.getStorageSync('token')
let bserUrl = ""
bserUrl = `/api${config.url}`
config.url = bserUrl
config.header = {
"Authorization": Authorization
}
config.hasLoading = true
if (config.hasLoading) {
uni.showLoading({
title: '加载中...'
})
uni.showNavigationBarLoading()
}
return new Promise((resolve, reject) => {
uni.request({
...config,
success: (res) => {
uni.hideLoading()
uni.hideNavigationBarLoading()
// resolve(res.data.data)
const {
code,
data,
message
} = res.data
switch (code) {
case 200:
if (data) {
return resolve(res.data)
} else {
uni.showToast({
title: message,
icon: 'none'
})
}
break;
case 201:
uni.showToast({
title: message,
icon: 'none'
})
case 500:
uni.showToast({
title: message,
icon: 'none'
})
case 503:
case 5002:
uni.showToast({
title: message,
icon: 'none'
})
break;
case 5000:
uni.showToast({
title: message,
icon: 'none'
})
uni.redirectTo({
url: '/pages/login/index'
})
break;
case 7004:
uni.showToast({
title: message,
icon: 'none'
})
break;
case 7006:
uni.showToast({
title: message,
icon: 'none'
})
break;
case 7007:
uni.showToast({
title: message,
icon: 'none'
})
break;
}
},
fail: (rej) => {
uni.hideLoading()
uni.hideNavigationBarLoading()
uni.showToast({
title: "服务器出错",
icon: 'none'
})
reject(rej)
}
})
})
}
最后再 自己写个 js 文件,封装 方法

import request from "@/utils/request.js" //账号密码登录
export function adminLogin(data){
return request({
url : '/auth/login',
method :'post',
header: { 'content-type': 'application/x-www-form-urlencoded' },
data : data
})
}
最后丢到 vue 文件中 就行。
import { adminLogin } from '@/api/index.js'
如果方法不封装的话,就可以直接引用
uni.request({
url: '/api/auth/login',
method:'post',
data: this.login
}).then(data=>{
console.info(data[1].data)
// uni.redirectTo({
// url : '../homePage/index',
// })
this.$refs.uTips.show({ title: '登陆成功', type: 'success', duration: '2300'})
}).catch(()=>{
this.$refs.uTips.show({ title: '登录失败', type: 'success', duration: '2300'})
})
封装了之后
adminLogin(this.login).then(res=>{
console.info(res)
}).catch(()=>{
console.info('test1223')
})
uniapp 封装 request 并 配置跨域,( 本地 + 线上 + 封装 )的更多相关文章
- ASP.NET MVC4应用程序配置跨域访问
开发框架是使用webapi做后台,HTML5做前台,通过ajax调用webapi后台,返回json结果. 用的编译器是visual Studio2013,下面是配置方法 1.web.config文件 ...
- NGINX: 配置跨域请求
说明: 内容全部来自 SegmentFault Developer Nginx 配置跨域请求 跨域请求失败, nginx 报错: 403 No 'Access-Control-Allow-Origin ...
- django配置跨域并开发测试接口
1.创建一个测试项目 1.1 创建项目和APP django-admin startproject BookManage # 创建项目 python manage.py startapp books ...
- 02.django配置跨域并开发测试接口
1.创建一个测试项目 1.1 创建项目和APP '''1.创建项目和APP''' django-admin startproject BookManage # 创建项目 python mana ...
- SpringBoot 优雅配置跨域多种方式及Spring Security跨域访问配置的坑
前言 最近在做项目的时候,基于前后端分离的权限管理系统,后台使用 Spring Security 作为权限控制管理, 然后在前端接口访问时候涉及到跨域,但我怎么配置跨域也没有生效,这里有一个坑,在使用 ...
- System.Web.Http.Cors配置跨域访问的两种方式
System.Web.Http.Cors配置跨域访问的两种方式 使用System.Web.Http.Cors配置跨域访问,众多大神已经发布了很多文章,我就不在详细描述了,作为小白我只说一下自己的使用心 ...
- WebApi使用cors配置跨域问题
1.首先安装CORS,在WebApiCors项目上面使用Nuget搜索“microsoft.aspnet.webapi.cors”,安装第一个 2.当我们安装这个包之后,现有的packages目录下会 ...
- nginx配置跨域、gzip加速、代理详细讲解
1.配置跨域 这个很简单,直接打开配置nginx.conf ,在http下配置下面三行代码:当然如果你是想某一个虚拟主机下跨域,那就在哪个server下面添加 add_header Access-Co ...
- eclipse加速/Nginx配置跨域代理
下班时间到啦! --下班都是他们的,而我,还是什么都没有. eclipse加速 去掉包含js文件的包的js验证,否则每次启动都需要进行校验(右击项目->properties) Nginx配置跨域 ...
随机推荐
- 跳转页面携带数据方法 js
跳转页面 代码 function returnParent() { var arrReturn = new Array(); var tSel = LAAccountsGrid.getSelNo(); ...
- intouch 趋势图Y轴自适应功能完善
在项目中有利用到历史趋势,其y轴往往展示的是该点的最小/最大值范围,对于曲线波动展示不够友好.故而利用自带方法进行完善,以此记录. Histrend1.MinRange=HTGetAutoScaleV ...
- .NET同步原语Barrier简介
Barrier(屏障)是一种自定义的同步原语(synchronization primitive),它解决了多个线程(参与者)在多个阶段之间的并发和协调问题. 1)多个参与者执行相同的几个阶段的操作 ...
- GC Roots包含哪些
1.虚拟机栈中引用的对象 2.方法区中静态属性.常量引用的对象 3. 本地方法栈中引用的对象 4. 被Synchronized锁持有的对象 5. 记录当前被加载类的SystemDictionary 6 ...
- Cookie、Session、JWT在koa中的应用及实现原理
目录 Cookie 重要属性 实现原理 cookie签名实现原理 注意事项 Session 实现原理 JWT 使用方式 组成 实际应用 实现原理 前端存储方式 cookie session local ...
- Eclipse带参数调试的方法
下面是体现带参数调试的一个代码demo,首先输出参数的数量,然后依次输出每个参数. public class ArgsEx { public static void main(String[] arg ...
- BaiduSpider:爬取百度的利器
视频链接:https://www.zhihu.com/zvideo/1272864710321516544 BaiduSpider是一个能够爬取百度搜索结果的Python爬虫,轻量但强大.目前支持百度 ...
- 联合迭代器与生成器,enumerate() 内置函数真香!
花下猫语:Python 中很多内置函数的作用都非常大,比如说 enumerate() 和 zip(),它们使得我们在作迭代操作时极为顺手.这是一篇很多年前的 PEP,提议在 Python 2.3 版本 ...
- Docker开启TLS和CA认证
前言:Docker直接开启2375端口是不安全的,别人只要连上之后就可以任意操作,下面是开启Docker的TLS和CA认证方法,并使用Jenkins和Portainer连接. 一.生成证书 查看服务器 ...
- docker部署minio
快速部署 docker run -p 9000:9000 --name myminio \ -e "MINIO_ACCESS_KEY=AKIAIOSFODNN7EXAMPLE" \ ...