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配置跨域 ...
随机推荐
- ts 学习笔记-基础篇
目录 基础 原始数据类型 布尔值 数字 字符串 空值 Null 和 Undefined 任意值 类型推论 联合类型 接口 数组 函数 类型断言 申明文件 什么是申明文件 三斜线指令 第三方声明文件 内 ...
- Docker run 命令参数及使用
Docker run 命令参数及使用 Docker run :创建一个新的容器并运行一个命令 语法 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] OPTI ...
- tp phpexcel 导出后台访问方法
public function phpexcel(){ //-----excel表导出 $dataid = $_GET['dataid']; $status = $_GET['status']; $F ...
- anyRTC Web SDK 实现音视频呼叫功能
前言 大家好,今天小编带给大家一个基于 anyRTC Web SDK 实现音视频呼叫的功能(本项目采用vue开发). 前提条件 在开始写代码之前还需要做一些准备工作,如果你之前没有使用过 anyRTC ...
- expect命令和here document免交互
目录 一.Here Document免交互 1.1 概述 1.2 语法格式 1.3 简单案例 1.4 支持变量替换 1.5 多行注释 1.6 完成自动划分磁盘免交互 二.Expect进行免交互 2.1 ...
- 本以为精通Android事件分发机制,没想到被面试官问懵了
文章中出现的源码均基于8.0 前言 事件分发机制不仅仅是核心知识点更是难点,并且还是View的一大难题滑动冲突解决方法的理论基础,因此掌握好View的事件分发机制是十分重要的. 一.基本认识 1. 事 ...
- RedisTemplate连接不释放、Redis断线不重连问题、Redis连接数高飙升
使用RedisTemplate操作Redis数据,但遇到网络断线后不会重新连接 毫无头绪 一顿捣鼓 最终解决 整理如下 帮助更多的人 1.起因 使用RedisTemplate 配置 开启了事务 ena ...
- sql server时间转换
--getdate 获取当前时间 select getdate() --dateadd 原有时间加: 2013-02-17 13:20:16 此时间加12个月 select dateadd(MONTH ...
- 徒手打造基于Spark的数据工厂(Data Factory):从设计到实现
在大数据处理和人工智能时代,数据工厂(Data Factory)无疑是一个非常重要的大数据处理平台.市面上也有成熟的相关产品,比如Azure Data Factory,不仅功能强大,而且依托微软的云计 ...
- 理解SpingAOP
目录 什么是AOP? AOP术语 通知(Advice) 连接点(Join point) 切点(Pointcut) 连接点和切点的区别 切面(Aspect) 引入(Introduction) 织入(We ...