微信小程序之上传下载交互api
wx.request(OBJECT)
OBJECT参数说明:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | String | 是 | 开发者服务器接口地址 |
| data | Object、String | 否 | 请求的参数 |
| header | Object | 否 | 设置请求的 header , header 中不能设置 Referer |
| method | String | 否 | 默认为 GET,有效值:OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT |
| dataType | String | 否 | 默认为 json。如果设置了 dataType 为 json,则会尝试对响应的数据做一次 JSON.parse |
| success | Function | 否 | 收到开发者服务成功返回的回调函数,res = {data: '开发者服务器返回的内容'} |
| fail | Function | 否 | 接口调用失败的回调函数 |
| complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
success返回参数说明:
| 参数 | 说明 | 最低版本 |
|---|---|---|
| data | 开发者服务器返回的数据 | |
| statusCode | 开发者服务器返回的状态码 | |
| header | 开发者服务器返回的 HTTP Response Header | 1.2.0 |
data 数据说明 最终发送给服务器的数据是 String 类型,如果传入的 data 不是 String 类型,会被转换成 String 。转换规则如下:
- 对于 header['content-type'] 为 'application/json' 的数据,会对数据进行 JSON 序列化
- 对于 header['content-type'] 为 'application/x-www-form-urlencoded' 的数据,会将数据转换成 query string (encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)...)
示例代码:
wx.request({ url: 'test.php', //仅为示例,并非真实的接口地址 data: { x: '' , y: '' }, header: {
'content-type': 'application/json'
},
success: function(res) {
console.log(res.data)
}
})微信小程序开发时,使用公共的url端口,自定义函数module.exports = {
// API 接口
API_HOST: "url/"
}
const config = require('../config.js');
module.exports = {
//get方式请求
GET: function (url = '', data = {}, fn) {
console.log(data);
wx.request({
url: config.API_HOST + url,//请求地址
method: 'get',//请求方式
data: data,//请求参数
header: { "Content-Type": "application/x-www-form-urlencoded" },
success: function (res) {
fn(res);
}
});
},
//post方式请求
POST: function (url = '', data = {}, fn) {
wx.request({
url: config.API_HOST + url,//请求地址
method: 'post',//请求方式
data: data,//请求参数
header: { "Content-Type":"application/x-www-form-urlencoded"},
success: function (res) {
fn(res);
}
});
},
}
// 加载配置文件
const config = require('config.js');
var app=getApp();
module.exports = {
/**
* get方式请求,ulr是请求api号,token是登陆token,不用token就传空,fn是函数成功的回调函数,data为向后台传递的参数by:张涛20180303
*/
GET: function (url = '',token='' ,data = {}, fn,fail) {
wx.request({
url: config.API_HOST + url,//请求地址
method: 'get',//请求方式
data: data,//请求参数
header: { "Content-Type": "application/json" ,'token':token},
success: function (res) {
// 判断token是否失效
if (res.data.code=='JWT00002'||res.data.code=='JWT00001'||res.data.code=='JWT00004'||res.data.code=='403') {
wx.navigateTo({
url:'/pages/login/login'
})
return false;
}
fn(res);
},
fail: function (res) {
// wx.showToast({
// title: '请求服务器失败,请稍后再试!',
// icon: 'loading',
// duration: 2000
// })
}
});
}, /**
* post方式请求
*/
POST: function (url = '',token='', data = {}, fn ,fail) {
wx.request({
url: config.API_HOST + url,//请求地址
method: 'post',//请求方式
data: data,//请求参数
header: { "Content-Type": "application/json",'token':token},
success: function (res) {
// 判断token是否失效 如果失效就跳转登录页面
if (res.data.code=='JWT00002'||res.data.code=='JWT00001'||res.data.code=='JWT00004'||res.data.code=='403') {
wx.navigateTo({
url:'/pages/login/login'
})
return false;
}
fn(res);
},
fail: function (res) {
// wx.showToast({
// title: '请求服务器失败,请稍后再试!',
// icon: 'loading',
// duration: 2000
// })
}
});
} }
增加个人封装的小程序请求方法
微信小程序之上传下载交互api的更多相关文章
- 微信小程序之上传多张图片
之前写过一篇小程序商品发布的博客,里面有上传多张图片的功能,这里单独拿出来实现以下,小程序的upLoadFile一次只能上传一张图片,需要循环调这个接口来实现 for (var i = 0; i &l ...
- 微信小程序-上传下载
wx.uploadFile(OBJECT) 上传 将本地资源上传到开发者服务器.如页面通过 wx.chooseImage(图片)/wx.chooseVideo(视频) 等接口获取到一个本地资源的临时文 ...
- 微信小程序城市定位(百度地图API)
概述 微信小程序提供一些API(地址)用于获取当前用户的地理位置等信息,但无论是wx.getLocation,还是wx.chooseLocation均没有单独的字段表示国家与城市信息,仅有经纬度信息. ...
- 微信小程序上传Excel文本文件功能
问题: 在开发过程中会发现微信小程序有很多功能都还不能满足我们的需求,谁叫客户就是上帝呢,前几天小编遇到了这么个问题,就是用微信小程序上传文件,但是还以为微信带有这个模块,可是查了许久还是没有找到,只 ...
- 微信小程序上传多张图片,及php后台处理
微信小程序上传多张图片,级小程序页面布局直接来代码index.wxml <view class='body' style='width:{{windowWidth}}px;height:{{wi ...
- 微信小程序上传与下载文件
需要准备的工作: ①.建立微信小程序工程,编写以下代码. ②.通过IDE建立springboot+web工程,编写接收文件以及提供下载文件的方式,并将上传的文件相关信息记录在mysql数据库中.具体请 ...
- 微信小程序--代码构成---JS 交互逻辑
一个服务仅仅只有界面展示是不够的,还需要和用户做交互:响应用户的点击.获取用户的位置等等.在小程序里边,我们就通过编写 JS 脚本文件来处理用户的操作. <view>{{ msg }}&l ...
- 微信小程序入门教程之四:API 使用
今天是这个系列教程的最后一篇. 上一篇教程介绍了,小程序页面如何使用 JavaScript 脚本.有了脚本以后,就可以调用微信提供的各种能力(即微信 API),从而做出千变万化的页面.本篇就介绍怎么使 ...
- 微信小程序上传后发布或者体验版测试无数据解决办法
在做微信小程序开发的过程中,发现小程序在本地调用接口的数据都显示,但是上传之后,发现手机体验没有数据.以下为解决办法: 1.先清除缓存试试. 2.打开微信小程序工具右上角的详情——项目设置,将“不校验 ...
随机推荐
- 使Tomcat指向指定的JDK目录
1,修改bin文件夹下面的catalina.bat文件,把如下内容 rem ----- Execute The Requested Command -------------------------- ...
- java文件监控[转]
原文链接:http://blog.csdn.net/dancen/article/details/7786987#comments 问题:存在两个文件目录,且称之为源目录和目标目录,需要不定期将源目录 ...
- 洛谷 [P4016] 负载平衡问题
贪心做法 第一眼看见觉得和均分纸牌差不多,然而因为这是环形的,并不能用均分纸牌的方法做,但是均分纸牌的思想仍然适用 首先我们假设平均数为sum1. 那么对于第1个人,我们假设他给第N个人K个糖果, 第 ...
- POJ 1755 Triathlon [半平面交 线性规划]
Triathlon Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 6912 Accepted: 1790 Descrip ...
- 应用负载均衡之LVS(二):VS_TUN和VS_DR的arp问题
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- js短路表达式
今天碰见个题目,感觉短路表达式很好用. 题目: 定义一个计算圆面积的函数area_of_circle(),它有两个参数: r: 表示圆的半径: pi: 表示π的值,如果不传,则默认3.14 funct ...
- mongodb 学习二
基本操作 增删改查实一个数据库必备的操作,接下来我们就说说怎么在shell下进行增删改查. 我们另外打开一个"命令指示符"窗口(注意:之前的不能关闭),输入mongo打开Mongo ...
- LeetCode - 626. Exchange Seats
Mary is a teacher in a middle school and she has a table seat storing students' names and their corr ...
- Excel地图插件(ExcelMaps)
1 软件概述 一款基于Excel表格进行地理数据挖掘.坐标转换.地图绘制.地图图表等操作的工具类应用软件.具有易用.高效.稳定的特点,能够满足地理数据应用及处理的基本需求,也可提供个性化定制开发服务. ...
- 在Arrays.asList()引发的问题中进一步学习集合与泛型等内容
前言 最近在网上看到一个问题,情况类似如下(记为问题1): public class Demo { public static void main(String[] args) { System.ou ...