调用方法: 先引用config.js,然后调用封装网络请求。

里面三个参数  1.url, 2.请求需要提交的数据,  3.请求类型


// 获取二维码、背景图片接口
getScheduleInfo() {var url = '/v1/basketball/getQRCode.do';var params = {phone: '13977284414'}config.RequestData(url, params,'get').then(res => {console.log('获取二维码、背景图片接口', res.module);}).catch(error => {console.log(error);})
},

config.js代码:

这里根据我代码的实际情况,在封装的网络请求里面做了登录的判断,如果没有登录,就先调登录接口,然后再重新请求。

这里我把用户唯一标识(session)和活动id(activityId)也放到 data 中,并且根据不同的情况用不同的域名进行网络请求。可以根据你自己的需求做修改。

const config = {USERhttpURL: 'https://aaa.cn', // 测试环境1httpURL: 'https://bbb.cn', //测试环境2// 授权登录接口 toLoginOk: (url, data = {}, method = 'post', resolve) => {console.log('调用登录接口,获取session')var login_url;var login_params = {auth_user: config.getUrlkey(location.href).auth_user ? config.getUrlkey(location.href).auth_user : ''}if (config.getUrlkey(location.href).activityId) {login_url = config.httpURL + '/actcenter/v1/user/login.do';login_params.activityId = config.getUrlkey(location.href).activityId;} else {login_url = config.USERhttpURL + '/v1/user/login.do';console.log('是个人中心接口---toLoginOk', login_url)}$.ajax({type: 'post',url: login_url,contentType: 'application/x-www-form-urlencoded;charset=utf-8',data: login_params,dataType: "json",complete: res => {res = res.responseJSONif (res.success) {var session = res.module; // session if (session) {if(config.getUrlkey(location.href).activityId){localStorage.setItem('session', session); // 设置缓存}else{localStorage.setItem('userSession', session); // 设置缓存}config.ajaxIng(url, data, method, resolve);}} else {}}})},// 网络请求中ajaxIng(url, data, method, resolve) {if (config.getUrlkey(location.href).activityId) {url = config.httpURL + url;data.activityId = config.getUrlkey(location.href).activityId;data.session = localStorage.getItem('session');} else {url = config.USERhttpURL + url;data.session = localStorage.getItem('userSession');console.log('是个人中心接口---ajaxIng', url)}$.ajax({type: method,url: url,contentType: 'application/x-www-form-urlencoded;charset=utf-8',data: data,dataType: "json",complete: res => {if (res.success) {resolve(res); // 成功} else {reject(res); // 失败}}})},// 封装数据请求/*** url   请求的api               必传* data  请求参数{}              非必传* method  请求方法  get、post   非必传*/RequestData: (url, data = {}, method = 'post') => {return new Promise((resolve, reject) => {//如果是篮球活动,就会有 configActivityId  篮球活动用的是 session  个人中心用的是 userSessionif (config.getUrlkey(location.href).activityId) {if (localStorage.getItem('session')) {config.ajaxIng(url, data, method, resolve);} else {config.toLoginOk(url, data, method, resolve)}} else {if (localStorage.getItem('userSession')) {config.ajaxIng(url, data, method, resolve);} else {config.toLoginOk(url, data, method, resolve)}}})},// url参数解析getUrlkey: function(url) {var params = {};try {var urls = url.split("?");var arr = urls[1].split("&");for (var i = 0, l = arr.length; i < l; i++) {var a = arr[i].split("=");params[a[0]] = a[1];}} catch (e) {//TODO handle the exception}return params;}
}

HTML封装AJAX请求,在请求里面写登录的逻辑 ajax 网络请求 post相关推荐

  1. android post请求添加公共参数_XHttp2 一个功能强悍的网络请求库

    XHttp2 一个功能强悍的网络请求库,使用RxJava2 + Retrofit2 + OKHttp组合进行封装.还不赶紧点击使用说明文档,体验一下吧! 项目地址 关于我 https://github ...

  2. 超简单-用协程简化你的网络请求吧,兼容你的老项目和旧的网络请求方式

    前言 在Kotlin协程(后简称协程)出来之后,颠覆了我们很多工具类的封装方式,大大简化了我们很多api的调用,并且使异步操作逻辑更清晰了 其中一个很标志性的地方就属网络请求了,以前的网络请求方式声明 ...

  3. android 请求方式有哪些,Android中的几种网络请求方式详解

    Android应用经常会和服务器端交互,这就需要手机客户端发送网络请求,下面整理四种常用网络请求方式. java.net包中的HttpURLConnection类 Get方式: // Get方式请求 ...

  4. android多个网络请求如何依次执行,Android 并发和串行网络请求

    需求 假如有上面的需求,我们从MVC模型上考虑,View层可以使用ListView的多Type,Model层可以考虑串行和并行处理数据,下面分别给出两种不同的处理思路 串行思路 这里直接给出一般的串行 ...

  5. 微信小程序网络请求异常怎么办_解决·微信小程序开发-网络请求报Invalid request 400错误...

    今天学习了一下微信小程序的入门开发,在使用网络请求时,发现根据微信官方的API的方法进行操作出现Invalid request 400错误,到底怎么回事呢? 首先我们来看微信API网络请求 示例代码: ...

  6. 安卓HttpURLConnection 进行http请求(传递数据 获取数据 主线程禁止网络请求)以get方式为例

    注意: 1.安卓主线程禁止联网操作,如果在主线程中使用HttpURLConnection需通过new Thread()在新的线程中使用. 2.使用HttpURLConnection时必须设计异常处理. ...

  7. Anroid-async-http封装网络请求框架源码分析

    Android-async-http开源项目可以是我们轻松的获取网络数据或者向服务器发送数据,使用起来非常简单, 这个网络请求库是基于Apache HttpClient库之上的一个异步网络请求处理库, ...

  8. xUtils3.x的网络请求封装和请求https之单向SSL验证

    很久没写博客了, 自己定的路已经走歪,菜鸟的进阶之路上我只是走了一步,自从发了一篇博客之后在没有来过这里,已经有一年了吧,今天再次回到这里. 言归正传,今天要写的是xUtils3.x网络请求的封装和请 ...

  9. 基于OkHttp3封装网络请求框架

    前言 网络请求可以说是开发一款移动APP最核心的基础功能了,通过实际工作中以及浏览了许多网络框架之后,本篇在这里分享慕课一位老师基于OkHttp封装的一个轻量的网络框架,至于为什么说它轻量,因为代码少 ...

最新文章

  1. 2022-2028年中国2,3,6-三甲基苯酚行业市场研究及前瞻分析报告
  2. 《ASP.NET MVC 4 实战》----导读
  3. 建立jackrabbit内容仓库实例
  4. linux线程同步之互斥锁——linux的关键区域
  5. 从零开始的51单片机——VsCode+EIDE环境搭建
  6. android服务器 性能,Android性能优化(中)
  7. 【转载】Elasticsearch客户端API使用Demo
  8. JavaMail回复
  9. js学习总结----js中常用的四种输出方式
  10. linux文件目录类命令--pwd命令
  11. Django REST框架
  12. 如何安装.net framework?Win11安装net framework的方法
  13. Linksys e3200初试tomato系统
  14. python查找相似图片或重复图片
  15. 线下综合体-中岛店的一些思考
  16. 梁宁-产品思维30讲-机会判断-点线面体的战略选择
  17. 高项、高级项目管理师论文-质量管理
  18. element中navMenu结合路由使用
  19. SpringBoot + Vue 结合支付宝支付(3)--调用api
  20. 移动通信核心网技术总结(一)语音与上网业务的实现

热门文章

  1. Redis3.0 配置文件说明
  2. python显示当前时间
  3. CMakeLists.txt学习记录
  4. 基于第四层交换技术的负载均衡
  5. 巧用CSS的Glow滤镜
  6. AWS攻略——使用CodeBuild进行自动化构建和部署静态网页
  7. C++/C++11中头文件algorithm的使用
  8. C++11中override的使用
  9. 基于chyh1990/caffe-compact在windows vs2013上编译caffe步骤
  10. 【Qt】通过QtCreator源码学习Qt(七):插件管理类简介