(十四)硅谷外卖前端部分-前后台交互 ajax

一、下载依赖包

npm install --save axios

二、封装 ajax 请求模块

2.1 api/ajax.js

import axios from ‘axios‘

export default function ajax(url = ‘‘, data = {}, type = ‘GET‘) {
    return new Promise(function (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)
            })
    })
}

2.2 api/index.js

import ajax from ‘./ajax‘

/**
 * 获取地址信息(根据经纬度串)
 */
export const reqAddress = geohash => ajax(‘/api/position/‘ + geohash)
/**
 * 获取 msite 页面食品分类列表
 */
export const reqCategorys = () => ajax(‘/api/index_category‘)
/**
 * 获取 msite 商铺列表(根据经纬度)
 */
export const reqShops = ({latitude, longitude}) => ajax(‘/api/shops‘, {latitude,
    longitude})
/**
 * 账号密码登录
 */
export const reqPwdLogin = (name, pwd, captcha) => ajax(‘/api/login_pwd‘, {
    name,
    pwd,
    captcha
}, ‘POST‘)
/**
 * 获取短信验证码
 */
export const reqSendCode = phone => ajax(‘/api/sendcode‘, {phone})
/**
 * 手机号验证码登录
 */
export const reqSmsLogin = (phone, code) => ajax(‘/api/login_sms‘, {phone, code}, ‘POST‘)
/**
 * 获取用户信息(根据会话)
 */
export const reqUser = () => ajax(‘/api/userinfo‘)
/**
 * 请求登出
 */
export const reqLogout = () => ajax(‘/api/logout‘)

三、配置代理

babel.config.js

proxyTable: {
    ‘/api‘: { // 匹配所有以 ‘/api‘开头的请求路径
      target: ‘http://localhost:4000‘, // 代理目标的基础路径
      changeOrigin: true, // 支持跨域
      pathRewrite: {// 重写路径: 去掉路径中开头的‘/api‘
        ‘^/api‘: ‘‘
      }
    }
}

原文地址:https://www.cnblogs.com/mxsf/p/10989487.html

时间: 2024-07-31 16:06:22

(十四)硅谷外卖前端部分-前后台交互 ajax的相关文章

(十)硅谷外卖前端部分-HeaderTop 组件

一.说明 此组件会使用到 slot 进行组件间通信 slot 通信是标签, 而不是单纯的数据 二.components/HeaderTop/HeaderTop.vue <template> <!--首页头部--> <header class="header"> <slot name="search"></slot> <span class="header_title"> &l

(十三)硅谷外卖前端部分-Login 组件(静态)

一.图片资源 二.Login.vue <template> <section class="loginContainer"> <div class="loginInner"> <div class="login_header"> <h2 class="login_logo">硅谷外卖</h2> <div class="login_heade

(十二)硅谷外卖前端部分-ShopList 组件(静态)

一.图片资源 二.components/ShopList/ShopList.vue <template> <div class="shop_container"> <ul class="shop_list"> <li class="shop_li border-1px"> <a> <div class="shop_left"> <img class=

走入计算机的第四十四天(前端的开始)

一  初识HTML 1 web 服务本质 1 def main(): 2 3 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 4 sock.bind(('localhost',8081)) 5 sock.listen(5) 6 7 while True: 8 print("server is working.....") 9 conn, address = sock.accept() 10 11 request = co

Python之路【第十四篇】前端补充回顾

布局和事件 1.布局 首先看下下面的图片: 上面的内容都是居中的,怎么实现这个效果呢,第一种方法是通过float的方式,第二种是通过“div居中的方式” 第一种方式不在复述了,直接看第二种方式: 1.首先根据上面的图片我们可以把整个页面分为,“上”.“下”两部分 2.然后在在上下两部分中设置div并让他居中 3.居中的div不需要给他设置高度可以让内容给他吧高度顶起来 代码如下: <!DOCTYPE html> <html lang="en"> <head

前后台交互ajax请求模块

下载依赖包axios npm i axios -d 最基本的axios异步请求 /* 能发送异步ajax请求的函数模块 封装 axios库 函数的返回值:是一个promise对象 (可以用.then()/ async await 进行异步处理) */ //引入axios库 import axios from 'axios'; //引入axios库的模块 export default function ajax(url, data={}, method='GET'){ if(method==='G

前后台交互,使用ajax传输参数,可是没有跳转到后台的路径中

function setPayPwd(){        var mobile=document.getElementById("telPhone").value;         var payPassword=document.getElementById("payPwd").value;         var rePayPassword=document.getElementById("rePayPwd").value;        /

对硅谷和硅谷科技公司的十四问,全程干货

引用: http://www.36kr.com/p/219345.html 从硅谷公司哪家强,到人人在议的泡沫问题,大数据和人工智能如何结合?2015年的科技前瞻是怎样一副图景?来自硅谷的Coursera软件工程师董飞将其近日在斯坦福公开讲座上的干货和各种场合的问答整理出来和大家分享.文中有他的一手从业经验,也有其对亲身就职或深度研究过的一些公司具体分析,如Hadoop.Amazon.LinkedIn等.董飞的知乎页面在这里,邮箱是[email protected]. 1.目前硅谷最火最有名的高

关于Yahoo十四条军规与前端性能优化

关于Yahoo十四条军规与前端性能优化 热度 4已有 223 次阅读2014-8-3 15:01 |个人分类:前端相关|系统分类:前端优化| 前端优化, yahoo, 性能优化 启用Gzip压缩.Gzip的思想就是把文件先在服务器端进行压缩,然后再传输.这样可以显著减少文件传输的大小.传输完毕后浏览器会 重新对压缩过的内容进行解压缩,并执行.目前的浏览器都能“良好”地支持 gzip.不仅浏览器可以识别,而且各大“爬虫”也同样可以识别,各位seoer可以放下心了.而且gzip的压缩比例非常大,一般