项目文件目录/src/api

ajax.js

/**
* ajax 请求函数模块
* 返回值为promise对象
*/
import axios from 'axios'
export default function ajax (url, data = {}, type = 'GET') {
return new Promise((resolve, reject) => {
let promise
if (type === 'GET') {
// 准备url query 参数数据
let dataStr = '' // 数据拼接字符串
Object.keys(data).forEach(key => {
dataStr += key + '=' + data[key] + '&'
})
if (dataStr !== '') {
dataStr = dataStr.substring(0, dataStr.lastIndexOf('&'))
url = url + '?' + dataStr
}
// 发送get 请求
promise = axios.get(url)
} else {
// 发送post 请求
promise = axios.post(url, data)
}
promise.then(response => {
resolve(response.data)
})
.catch(error => {
reject(error)
})
})
}

index.js

举例:接口请求函数封装: 每个后台

/**
* 包含n个接口函数的模块
* 返回值为promise对象
*
* 1、根据经纬度获取位置详情
* 2、获取食品分类列表
* 3、根据经纬度获取商铺列表
* 4、根据经纬度和关键字搜索商铺列表
* 5、获取一次性验证码
* 6、用户名密码登陆
* 7、发送短信验证码
* 8、手机号验证码登陆
* 9、根据会话获取用户信息
* 10、用户登出
*/
import ajax from './ajax' // 1、根据经纬度获取位置详情
export const reqAddress = (geohash) => ajax(`/position/${geohash}`) // 2、获取食品分类列表
export const reqFoodTypes = () => ajax('/index_category') // 3、根据经纬度获取商铺列表
export const reqShops = (latitude, longitude) => ajax('/shops', {
latitude,
longitude
}) // 4、根据经纬度和关键字搜索商铺列表
export const reqShopsSearch = (geohash, keyword) => ajax('/search_shops', {
geohash,
keyword
}) // 5、获取一次性验证码
export const reqCaptcha = () => ajax('/captcha') // 6、用户名密码登陆
export const reqPwdLogin = (name, pwd, captcha) => ajax('/api/login_pwd', {
name,
pwd,
captcha
}, 'POST') // 7、发送短信验证码
export const reqSendCode = phone => ajax('/api/sendcode', {
phone
}) // 8、手机号验证码登陆
export const reqSmsLogin = (phone, code) => ajax('/api/login_sms', {
phone,
code
}, 'POST') // 9、根据会话获取用户信息
export const reqUser = () => ajax('/api/userinfo') // 10、用户登出
export const reqLogout = () => ajax('/api/logout')

最新文章

  1. 用Fiddler模拟低速网络环境
  2. ASP.NET MVC 5 05 - 视图
  3. mysql 基础使用
  4. 装配bean
  5. poj1986 LCA
  6. 在Java中如何实现“Pless presss any key to continue.”
  7. html+css图片下弹出蒙版
  8. C#关键字
  9. .net C# 对虚拟目录IIS的操作
  10. 分享一个解决MySQL写入中文乱码的方法
  11. Android开发笔记-加载xml资源
  12. C#中的枚举类型(enum type)
  13. xampp 修改mysql 密码
  14. Linux查看代码量
  15. swift 点击button改变其内填充图片,达到选中的效果
  16. UVA 1364 - Knights of the Round Table (获得双连接组件 + 二部图推理染色)
  17. linux下使用kpartx挂载虚拟文件系统
  18. debian安装后sudo命令不能用的解决方法
  19. 开箱即用 - jwt 无状态分布式授权
  20. mysql编程---函数

热门文章

  1. java线程的五大状态,阻塞状态详解
  2. iNeuOS工业互联平台,WEB组态(iNeuView)集成图报组件,满足实时数据图形化展示的需求
  3. docker入门3-docker swarm
  4. mysql join update
  5. Cirros镜像
  6. Privacy-Preserving Deep Learning via Additively Homomorphic Encryption
  7. Next Cloud通过修改数据库表,达到替换文件而不改变分享的链接地址的效果,以及自定义分享链接地址
  8. 数据处理 | pandas入门专题——离散化与one-hot
  9. seo工程师是什么,需要什么技能?
  10. python编写汉诺塔 Hanoi