1、普通的微信请求封装

 1 const http = (options) =>{
2 return new Promise((resolve,reject) => {
3 wx.request({
4 url: options.url,
5 method:options.method || 'get',
6 data:options.data || {},
7 header: options.header || {
8 'content-type':'application/json; charset=utf-8'
9 },
10 success:resolve,
11 fail:reject
12 })
13 })
14 }
15 export default http

在自己写的api.js里import后export

 1 import http from '../http/http.js'
2
3 const functionName = (val1,val2) => {
4 return http({
5 url:'url',
6 data: {},
7 method: 'get', //post
8 header:{}
9 })
10 }
11
12 export default{
13 functionName
14 }

在需要使用api的页面import后调用方法即可

1 import api from '../api/api.js' 2 3 api.functionName().then(res =>{ 4 5 console.log(res) 5 6 7 })

2、原生微信小程序请求不支持multipart/form-data,当后端接口要求此类型请求时,就需要换一种写法

 1 wx.request({
2 url:'url',
3 method:'POST', //GET
4 header: {
5 'content-type':'multipart/form-data; boundary=XXX', //XXX是分隔符的意思
6 },
7 data:'\r\n--XXX' +
8 '\r\nContent-Disposition: form-data; name="key1"' + //第一个参数key1:val1,固定写法以此类推
9 '\r\n' +
10 '\r\n' + val1 +
11 '\r\n--XXX' +
12 '\r\nContent-Disposition: form-data; name="key2"' +
13 '\r\n' +
14 '\r\n' + val2 +
15 '\r\n--XXX--',
16 success(res){
17 console.log(res)
18 }
19 })

3、对于图片上传,微信小程序有原生的api可以直接调用,不过仅支持单文件上传

 1 wx.uploadFile({
2 url: 'url',
3 filePath: imgSrc, //imgSrc是微信小程wx.chooseImage等图片选择接口生成图片的tempFilePaths,无论后端能接收多少个这里都只能放一个,这是这个接口的限制
4 name: 'image', //后端接收图片的字段名
5 //请求头
6 header:{
7 'token':token,
8 'content-type':'multipart/form-data',
9 },
10 //携带的其他参数可以放在这
11 formData: {
12 key1:val1,
13 key2:val2,
14 },
15 success (res){
16 console.log(res)
17 }
18 })

4、微信小程序原生接口仅支持单文件上传,当需要多图片同时上传时,无法使用循环或者递归的方式上传图片(所以和后端对接要多多沟通),微信小程序无内置formData对象,所以处理起来麻烦点

首先,前往这里:https://github.com/zlyboy/wx-formdata 下载formData.js和mimeMap.js两个文件放进小程序目录里,github上也有对wx-formdata的详细使用说明,也可直接新建js文件复制文末的代码,最好就去看看github

完成了两个js的下载就可以直接使用了

 1 import FormData from '../formdata'
2
3 let formData = new FormData(); //新建一个formData对象
4 formData.append("key1", val1); //写入参数
5 formData.append("key2", val2);
6
7 //图片,依旧用原生接口选择图片,生成的tempFilePaths是一个图片链接数组,具体去看官方文档
8 for(let i in tempFilePaths){
9 formData.appendFile("image", that.data.tempFilePaths[i]);
10 }
11
12 let data = formData.getData();
13
14 //参数写好后,正常请求就好
15 wx.request({
16 url: 'url',
17 method: 'post',
18 header: {
19 'content-type': data.contentType,
20 'token':token,
21 },
22 data: data.buffer,
23 success (res){
24 console.log(res)
25 }
26 });

这个是mimeMap.js

  1 //文件mimeMap.js,由formData.js引用
2 module.exports = {
3 "0.001": "application/x-001",
4 "0.323": "text/h323",
5 "0.907": "drawing/907",
6 ".acp": "audio/x-mei-aac",
7 ".aif": "audio/aiff",
8 ".aiff": "audio/aiff",
9 ".asa": "text/asa",
10 ".asp": "text/asp",
11 ".au": "audio/basic",
12 ".awf": "application/vnd.adobe.workflow",
13 ".bmp": "application/x-bmp",
14 ".c4t": "application/x-c4t",
15 ".cal": "application/x-cals",
16 ".cdf": "application/x-netcdf",
17 ".cel": "application/x-cel",
18 ".cg4": "application/x-g4",
19 ".cit": "application/x-cit",
20 ".cml": "text/xml",
21 ".cmx": "application/x-cmx",
22 ".crl": "application/pkix-crl",
23 ".csi": "application/x-csi",
24 ".cut": "application/x-cut",
25 ".dbm": "application/x-dbm",
26 ".dcd": "text/xml",
27 ".der": "application/x-x509-ca-cert",
28 ".dib": "application/x-dib",
29 ".doc": "application/msword",
30 ".drw": "application/x-drw",
31 ".dwf": "Model/vnd.dwf",
32 ".dwg": "application/x-dwg",
33 ".dxf": "application/x-dxf",
34 ".emf": "application/x-emf",
35 ".ent": "text/xml",
36 ".eps": "application/x-ps",
37 ".etd": "application/x-ebx",
38 ".fax": "image/fax",
39 ".fif": "application/fractals",
40 ".frm": "application/x-frm",
41 ".gbr": "application/x-gbr",
42 ".gif": "image/gif",
43 ".gp4": "application/x-gp4",
44 ".hmr": "application/x-hmr",
45 ".hpl": "application/x-hpl",
46 ".hrf": "application/x-hrf",
47 ".htc": "text/x-component",
48 ".html": "text/html",
49 ".htx": "text/html",
50 ".ico": "image/x-icon",
51 ".iff": "application/x-iff",
52 ".igs": "application/x-igs",
53 ".img": "application/x-img",
54 ".isp": "application/x-internet-signup",
55 ".java": "java/*",
56 ".jpe": "image/jpeg",
57 ".jpeg": "image/jpeg",
58 ".jpg": "application/x-jpg",
59 ".jsp": "text/html",
60 ".lar": "application/x-laplayer-reg",
61 ".lavs": "audio/x-liquid-secure",
62 ".lmsff": "audio/x-la-lms",
63 ".ltr": "application/x-ltr",
64 ".m2v": "video/x-mpeg",
65 ".m4e": "video/mpeg4",
66 ".man": "application/x-troff-man",
67 ".mdb": "application/msaccess",
68 ".mfp": "application/x-shockwave-flash",
69 ".mhtml": "message/rfc822",
70 ".mid": "audio/mid",
71 ".mil": "application/x-mil",
72 ".mnd": "audio/x-musicnet-download",
73 ".mocha": "application/x-javascript",
74 ".mp1": "audio/mp1",
75 ".mp2v": "video/mpeg",
76 ".mp4": "video/mpeg4",
77 ".mpd": "application/vnd.ms-project",
78 ".mpeg": "video/mpg",
79 ".mpga": "audio/rn-mpeg",
80 ".mps": "video/x-mpeg",
81 ".mpv": "video/mpg",
82 ".mpw": "application/vnd.ms-project",
83 ".mtx": "text/xml",
84 ".net": "image/pnetvue",
85 ".nws": "message/rfc822",
86 ".out": "application/x-out",
87 ".p12": "application/x-pkcs12",
88 ".p7c": "application/pkcs7-mime",
89 ".p7r": "application/x-pkcs7-certreqresp",
90 ".pc5": "application/x-pc5",
91 ".pcl": "application/x-pcl",
92 ".pdf": "application/pdf",
93 ".pdx": "application/vnd.adobe.pdx",
94 ".pgl": "application/x-pgl",
95 ".pko": "application/vnd.ms-pki.pko",
96 ".plg": "text/html",
97 ".plt": "application/x-plt",
98 ".png": "application/x-png",
99 ".ppa": "application/vnd.ms-powerpoint",
100 ".pps": "application/vnd.ms-powerpoint",
101 ".ppt": "application/x-ppt",
102 ".prf": "application/pics-rules",
103 ".prt": "application/x-prt",
104 ".ps": "application/postscript",
105 ".pwz": "application/vnd.ms-powerpoint",
106 ".ra": "audio/vnd.rn-realaudio",
107 ".ras": "application/x-ras",
108 ".rdf": "text/xml",
109 ".red": "application/x-red",
110 ".rjs": "application/vnd.rn-realsystem-rjs",
111 ".rlc": "application/x-rlc",
112 ".rm": "application/vnd.rn-realmedia",
113 ".rmi": "audio/mid",
114 ".rmm": "audio/x-pn-realaudio",
115 ".rms": "application/vnd.rn-realmedia-secure",
116 ".rmx": "application/vnd.rn-realsystem-rmx",
117 ".rp": "image/vnd.rn-realpix",
118 ".rsml": "application/vnd.rn-rsml",
119 ".rtf": "application/msword",
120 ".rv": "video/vnd.rn-realvideo",
121 ".sat": "application/x-sat",
122 ".sdw": "application/x-sdw",
123 ".slb": "application/x-slb",
124 ".slk": "drawing/x-slk",
125 ".smil": "application/smil",
126 ".snd": "audio/basic",
127 ".sor": "text/plain",
128 ".spl": "application/futuresplash",
129 ".ssm": "application/streamingmedia",
130 ".stl": "application/vnd.ms-pki.stl",
131 ".sty": "application/x-sty",
132 ".swf": "application/x-shockwave-flash",
133 ".tg4": "application/x-tg4",
134 ".tif": "image/tiff",
135 ".tiff": "image/tiff",
136 ".top": "drawing/x-top",
137 ".tsd": "text/xml",
138 ".uin": "application/x-icq",
139 ".vcf": "text/x-vcard",
140 ".vdx": "application/vnd.visio",
141 ".vpg": "application/x-vpeg005",
142 ".vsd": "application/x-vsd",
143 ".vst": "application/vnd.visio",
144 ".vsw": "application/vnd.visio",
145 ".vtx": "application/vnd.visio",
146 ".wav": "audio/wav",
147 ".wb1": "application/x-wb1",
148 ".wb3": "application/x-wb3",
149 ".wiz": "application/msword",
150 ".wk4": "application/x-wk4",
151 ".wks": "application/x-wks",
152 ".wma": "audio/x-ms-wma",
153 ".wmf": "application/x-wmf",
154 ".wmv": "video/x-ms-wmv",
155 ".wmz": "application/x-ms-wmz",
156 ".wpd": "application/x-wpd",
157 ".wpl": "application/vnd.ms-wpl",
158 ".wr1": "application/x-wr1",
159 ".wrk": "application/x-wrk",
160 ".ws2": "application/x-ws",
161 ".wsdl": "text/xml",
162 ".xdp": "application/vnd.adobe.xdp",
163 ".xfd": "application/vnd.adobe.xfd",
164 ".xhtml": "text/html",
165 ".xls": "application/x-xls",
166 ".xml": "text/xml",
167 ".xq": "text/xml",
168 ".xquery": "text/xml",
169 ".xsl": "text/xml",
170 ".xwd": "application/x-xwd",
171 ".sis": "application/vnd.symbian.install",
172 ".x_t": "application/x-x_t",
173 ".apk": "application/vnd.android.package-archive",
174 "0.301": "application/x-301",
175 "0.906": "application/x-906",
176 ".a11": "application/x-a11",
177 ".ai": "application/postscript",
178 ".aifc": "audio/aiff",
179 ".anv": "application/x-anv",
180 ".asf": "video/x-ms-asf",
181 ".asx": "video/x-ms-asf",
182 ".avi": "video/avi",
183 ".biz": "text/xml",
184 ".bot": "application/x-bot",
185 ".c90": "application/x-c90",
186 ".cat": "application/vnd.ms-pki.seccat",
187 ".cdr": "application/x-cdr",
188 ".cer": "application/x-x509-ca-cert",
189 ".cgm": "application/x-cgm",
190 ".class": "java/*",
191 ".cmp": "application/x-cmp",
192 ".cot": "application/x-cot",
193 ".crt": "application/x-x509-ca-cert",
194 ".css": "text/css",
195 ".dbf": "application/x-dbf",
196 ".dbx": "application/x-dbx",
197 ".dcx": "application/x-dcx",
198 ".dgn": "application/x-dgn",
199 ".dll": "application/x-msdownload",
200 ".dot": "application/msword",
201 ".dtd": "text/xml",
202 ".dwf": "application/x-dwf",
203 ".dxb": "application/x-dxb",
204 ".edn": "application/vnd.adobe.edn",
205 ".eml": "message/rfc822",
206 ".epi": "application/x-epi",
207 ".eps": "application/postscript",
208 ".exe": "application/x-msdownload",
209 ".fdf": "application/vnd.fdf",
210 ".fo": "text/xml",
211 ".g4": "application/x-g4",
212 ".tif": "image/tiff",
213 ".gl2": "application/x-gl2",
214 ".hgl": "application/x-hgl",
215 ".hpg": "application/x-hpgl",
216 ".hqx": "application/mac-binhex40",
217 ".hta": "application/hta",
218 ".htm": "text/html",
219 ".htt": "text/webviewhtml",
220 ".icb": "application/x-icb",
221 ".ico": "application/x-ico",
222 ".ig4": "application/x-g4",
223 ".iii": "application/x-iphone",
224 ".ins": "application/x-internet-signup",
225 ".IVF": "video/x-ivf",
226 ".jfif": "image/jpeg",
227 ".jpe": "application/x-jpe",
228 ".jpg": "image/jpeg",
229 ".js": "application/x-javascript",
230 ".la1": "audio/x-liquid-file",
231 ".latex": "application/x-latex",
232 ".lbm": "application/x-lbm",
233 ".ls": "application/x-javascript",
234 ".m1v": "video/x-mpeg",
235 ".m3u": "audio/mpegurl",
236 ".mac": "application/x-mac",
237 ".math": "text/xml",
238 ".mdb": "application/x-mdb",
239 ".mht": "message/rfc822",
240 ".mi": "application/x-mi",
241 ".midi": "audio/mid",
242 ".mml": "text/xml",
243 ".mns": "audio/x-musicnet-stream",
244 ".movie": "video/x-sgi-movie",
245 ".mp2": "audio/mp2",
246 ".mp3": "audio/mp3",
247 ".mpa": "video/x-mpg",
248 ".mpe": "video/x-mpeg",
249 ".mpg": "video/mpg",
250 ".mpp": "application/vnd.ms-project",
251 ".mpt": "application/vnd.ms-project",
252 ".mpv2": "video/mpeg",
253 ".mpx": "application/vnd.ms-project",
254 ".mxp": "application/x-mmxp",
255 ".nrf": "application/x-nrf",
256 ".odc": "text/x-ms-odc",
257 ".p10": "application/pkcs10",
258 ".p7b": "application/x-pkcs7-certificates",
259 ".p7m": "application/pkcs7-mime",
260 ".p7s": "application/pkcs7-signature",
261 ".pci": "application/x-pci",
262 ".pcx": "application/x-pcx",
263 ".pdf": "application/pdf",
264 ".pfx": "application/x-pkcs12",
265 ".pic": "application/x-pic",
266 ".pl": "application/x-perl",
267 ".pls": "audio/scpls",
268 ".png": "image/png",
269 ".pot": "application/vnd.ms-powerpoint",
270 ".ppm": "application/x-ppm",
271 ".ppt": "application/vnd.ms-powerpoint",
272 ".pr": "application/x-pr",
273 ".prn": "application/x-prn",
274 ".ps": "application/x-ps",
275 ".ptn": "application/x-ptn",
276 ".r3t": "text/vnd.rn-realtext3d",
277 ".ram": "audio/x-pn-realaudio",
278 ".rat": "application/rat-file",
279 ".rec": "application/vnd.rn-recording",
280 ".rgb": "application/x-rgb",
281 ".rjt": "application/vnd.rn-realsystem-rjt",
282 ".rle": "application/x-rle",
283 ".rmf": "application/vnd.adobe.rmf",
284 ".rmj": "application/vnd.rn-realsystem-rmj",
285 ".rmp": "application/vnd.rn-rn_music_package",
286 ".rmvb": "application/vnd.rn-realmedia-vbr",
287 ".rnx": "application/vnd.rn-realplayer",
288 ".rpm": "audio/x-pn-realaudio-plugin",
289 ".rt": "text/vnd.rn-realtext",
290 ".rtf": "application/x-rtf",
291 ".sam": "application/x-sam",
292 ".sdp": "application/sdp",
293 ".sit": "application/x-stuffit",
294 ".sld": "application/x-sld",
295 ".smi": "application/smil",
296 ".smk": "application/x-smk",
297 ".sol": "text/plain",
298 ".spc": "application/x-pkcs7-certificates",
299 ".spp": "text/xml",
300 ".sst": "application/vnd.ms-pki.certstore",
301 ".stm": "text/html",
302 ".svg": "text/xml",
303 ".tdf": "application/x-tdf",
304 ".tga": "application/x-tga",
305 ".tif": "application/x-tif",
306 ".tld": "text/xml",
307 ".torrent": "application/x-bittorrent",
308 ".txt": "text/plain",
309 ".uls": "text/iuls",
310 ".vda": "application/x-vda",
311 ".vml": "text/xml",
312 ".vsd": "application/vnd.visio",
313 ".vss": "application/vnd.visio",
314 ".vst": "application/x-vst",
315 ".vsx": "application/vnd.visio",
316 ".vxml": "text/xml",
317 ".wax": "audio/x-ms-wax",
318 ".wb2": "application/x-wb2",
319 ".wbmp": "image/vnd.wap.wbmp",
320 ".wk3": "application/x-wk3",
321 ".wkq": "application/x-wkq",
322 ".wm": "video/x-ms-wm",
323 ".wmd": "application/x-ms-wmd",
324 ".wml": "text/vnd.wap.wml",
325 ".wmx": "video/x-ms-wmx",
326 ".wp6": "application/x-wp6",
327 ".wpg": "application/x-wpg",
328 ".wq1": "application/x-wq1",
329 ".wri": "application/x-wri",
330 ".ws": "application/x-ws",
331 ".wsc": "text/scriptlet",
332 ".wvx": "video/x-ms-wvx",
333 ".xdr": "text/xml",
334 ".xfdf": "application/vnd.adobe.xfdf",
335 ".xls": "application/vnd.ms-excel",
336 ".xlw": "application/x-xlw",
337 ".xpl": "audio/scpls",
338 ".xql": "text/xml",
339 ".xsd": "text/xml",
340 ".xslt": "text/xml",
341 ".x_b": "application/x-x_b",
342 ".sisx": "application/vnd.symbian.install",
343 ".ipa": "application/vnd.iphone",
344 ".xap": "application/x-silverlight-app",
345 ".zip": "application/x-zip-compressed",
346 }

这个是formData.js

  1 // 文件 formData.js
2 const mimeMap = require('./mimeMap.js')
3
4 function FormData(){
5 let fileManager = wx.getFileSystemManager();
6 let data = {};
7 let files = [];
8
9 this.append = (name, value)=>{
10 data[name] = value;
11 return true;
12 }
13
14 this.appendFile = (name, path, fileName)=>{
15 let buffer = fileManager.readFileSync(path);
16 if(Object.prototype.toString.call(buffer).indexOf("ArrayBuffer") < 0){
17 return false;
18 }
19
20 if(!fileName){
21 fileName = getFileNameFromPath(path);
22 }
23
24 files.push({
25 name: name,
26 buffer: buffer,
27 fileName: fileName
28 });
29 return true;
30 }
31
32 this.getData = ()=>convert(data, files)
33 }
34
35 function getFileNameFromPath(path){
36 let idx=path.lastIndexOf("/");
37 return path.substr(idx+1);
38 }
39
40 function convert(data, files){
41 let boundaryKey = 'wxmpFormBoundary' + randString(); // 数据分割符,一般是随机的字符串
42 let boundary = '--' + boundaryKey;
43 let endBoundary = boundary + '--';
44
45 let postArray = [];
46 //拼接参数
47 if(data && Object.prototype.toString.call(data) == "[object Object]"){
48 for(let key in data){
49 postArray = postArray.concat(formDataArray(boundary, key, data[key]));
50 }
51 }
52 //拼接文件
53 if(files && Object.prototype.toString.call(files) == "[object Array]"){
54 for(let i in files){
55 let file = files[i];
56 postArray = postArray.concat(formDataArray(boundary, file.name, file.buffer, file.fileName));
57 }
58 }
59 //结尾
60 let endBoundaryArray = [];
61 endBoundaryArray.push(...endBoundary.toUtf8Bytes());
62 postArray = postArray.concat(endBoundaryArray);
63 return {
64 contentType: 'multipart/form-data; boundary=' + boundaryKey,
65 buffer: new Uint8Array(postArray).buffer
66 }
67 }
68
69 function randString() {
70 let res = "";
71 for (let i = 0; i < 17; i++) {
72 let n = parseInt(Math.random() * 62);
73 if (n <= 9) {
74 res += n;
75 }
76 else if (n <= 35) {
77 res += String.fromCharCode(n + 55);
78 }
79 else {
80 res += String.fromCharCode(n + 61);
81 }
82 }
83 return res;
84 }
85
86 function formDataArray(boundary, name, value, fileName){
87 let dataString = '';
88 let isFile = !!fileName;
89
90 dataString += boundary + '\r\n';
91 dataString += 'Content-Disposition: form-data; name="' + name + '"';
92 if (isFile){
93 dataString += '; filename="' + fileName + '"' + '\r\n';
94 dataString += 'Content-Type: ' + getFileMime(fileName) + '\r\n\r\n';
95 }
96 else{
97 dataString += '\r\n\r\n';
98 dataString += value;
99 }
100
101 var dataArray = [];
102 dataArray.push(...dataString.toUtf8Bytes());
103
104 if (isFile) {
105 let fileArray = new Uint8Array(value);
106 dataArray = dataArray.concat(Array.prototype.slice.call(fileArray));
107 }
108 dataArray.push(..."\r".toUtf8Bytes());
109 dataArray.push(..."\n".toUtf8Bytes());
110
111 return dataArray;
112 }
113
114 function getFileMime(fileName){
115 let idx = fileName.lastIndexOf(".");
116 let mime = mimeMap[fileName.substr(idx)];
117 return mime?mime:"application/octet-stream"
118 }
119
120 String.prototype.toUtf8Bytes = function(){
121 var str = this;
122 var bytes = [];
123 for (var i = 0; i < str.length; i++) {
124 bytes.push(...str.utf8CodeAt(i));
125 if (str.codePointAt(i) > 0xffff) {
126 i++;
127 }
128 }
129 return bytes;
130 }
131
132 String.prototype.utf8CodeAt = function(i) {
133 var str = this;
134 var out = [], p = 0;
135 var c = str.charCodeAt(i);
136 if (c < 128) {
137 out[p++] = c;
138 } else if (c < 2048) {
139 out[p++] = (c >> 6) | 192;
140 out[p++] = (c & 63) | 128;
141 } else if (
142 ((c & 0xFC00) == 0xD800) && (i + 1) < str.length &&
143 ((str.charCodeAt(i + 1) & 0xFC00) == 0xDC00)) {
144 // Surrogate Pair
145 c = 0x10000 + ((c & 0x03FF) << 10) + (str.charCodeAt(++i) & 0x03FF);
146 out[p++] = (c >> 18) | 240;
147 out[p++] = ((c >> 12) & 63) | 128;
148 out[p++] = ((c >> 6) & 63) | 128;
149 out[p++] = (c & 63) | 128;
150 } else {
151 out[p++] = (c >> 12) | 224;
152 out[p++] = ((c >> 6) & 63) | 128;
153 out[p++] = (c & 63) | 128;
154 }
155 return out;
156 };
157
158
159 module.exports = FormData;

微信小程序接口请求/form-data/单文件、多文件上传的更多相关文章

  1. 微信小程序 PHP后端form表单提交实例详解

    微信小程序php后端form表单 https://www.cnblogs.com/tdalcn/p/7092716.html 1.小程序相对于之前的WEB+PHP建站来说,个人理解为只是将web放到了 ...

  2. 微信小程序基于腾讯云对象存储的图片上传

    在使用腾讯云对象存储之前,公司一直使用的是传统的FTP的上传模式,而随着用户量的不断增加,FTP所暴露出来的问题也越来越多,1.传输效率低,上传速度慢.2.时常有上传其他文件来攻击服务器,安全上得不到 ...

  3. 微信小程序_(组件)form表单

    Form表单.switch开关.数值选择器效果 官方文档:传送门 点击提交表单(按钮,提交开关,数值选择器,输入文本中)的值,显示在控制台上,点击重置,重置表单中的值. 实现过程 form表单,添加f ...

  4. 微信小程序之商品发布+编辑功能(多图片上传功能)

    小程序的商品发布页面:功能有多图片上传 遇到的问题记录一下:1.uploadFile成功之后返回的参数是json字符串,一定要用JSON.parse转换为object格式 2.因为商品发布和编辑都是在 ...

  5. 微信小程序 网络请求之re.request 和那些坑

    微信小程序有四种网络请求类型,下面只详细介绍普通HTTPS请求(wx.request) 普通HTTPS请求(wx.request) 上传文件(wx.uploadFile) 下载文件(wx.downlo ...

  6. 微信小程序POST请求参数传递不到后台, 前台获取不到后端返回的数据, 以及 post 请求返回 404 但后台能收到数据

    1 微信小程序POST请求参数传递不到后台 需要在微信请求 wx.request 改变默认 header 配置为如下 wx.request({ url: 'test.php', //仅为示例,并非真实 ...

  7. 微信小程序数据请求方法wx.request小测试

    微信小程序数据请求方法 wx.request wxml文件: <view> <textarea value="{{textdata}}"/> </vi ...

  8. mpvue学习笔记-之微信小程序数据请求封装

    简介 美团出品的mpvue已经开源出来很久了,一直说要进行一次实践,这不最近一次个人小程序开发就用上了它. 看了微信官方的数据请求模块--request,对比了下get和post请求的代码,发现如果在 ...

  9. 微信小程序 -- 数据请求

    微信小程序 -- 数据请求 微信小程序请求数据,并不是一个可以在url打开有数据就可以拿到数据那么简单 浏览器地址输入 可以获取参数的url 微信小程序中 代码展示 wxml <view> ...

随机推荐

  1. rocketmq消息及流程

    1.为什么用mq 优势 主要有3个: 应用解耦(降低微服务之间的关联). 异步提速(微服务拿到mq消息后同时工作). 削峰填谷(可以消息堆积) 劣势 系统可用性降低(MQ一旦宕机整个系统不可用) 复杂 ...

  2. 给swap分区扩容

    一.先添加一块硬盘,如果硬盘空间还有没有被分区的也可以使用,再创建一个分区(分区可以是主分区或者扩展的逻辑分区) fdisk  /dev/sdb n        代表创建分区 p        代表 ...

  3. 【kubernetes 问题排查】使用 kubeadm 部署时遇到的问题

    引言 再使用kubeadm部署集群时会多少遇到一些问题,这里做下记录,方便后面查找问题时有方向,同时也为刚要入坑的你指明下方向,让你少走点弯路 问题汇总 The connection to the s ...

  4. GO语言学习——切片一

    切片(slice) 数组的长度的固定的.是声明之后不能变的.是类型的一部分 切片是一个引用类型 切片的定义 声明切片类型的基本语法如下: var name []T 其中, name:表示变量名 T:表 ...

  5. 98. 验证二叉搜索树 前序遍历解法以及后续遍历解法(go语言)

    leetcode题目 98. 验证二叉搜索树 前序遍历 最简洁的答案版本,由于先判断的是根节点,所以直接判断当前root的值v,是否满足大于左子树最大,小于右子树最小,然后再遍历左子树,右子树是否是这 ...

  6. mysql忘记root密码实现免密登录

    1.配置my.cnf文件,跳过授权表: skip-grant-tables 2.重启mysqld服务 3.z直接mysql登录 4.use mysql这个数据库 5.设置密码: update user ...

  7. HTML区块

    1.HTML 可以通过 <div> 和 <span>将元素组合起来. 2.HTML <div> 元素 HTML <div> 元素是块级元素,它可用于组合 ...

  8. python初识数据类型(字典、集合、元组、布尔)与运算符

    目录 python数据类型(dict.tuple.set.bool) 字典 集合 元组 布尔值 用户交互与输出 获取用户输入 输出信息 格式化输出 基本运算符 算术运算符 比较运算符 逻辑运算符 赋值 ...

  9. typora的下载和基本的使用

    目录 typora的下载和基本的使用 typora的下载 typora基本的使用 选择自己喜爱的主题 创建标题 进入编程环境 改变文本样式 插入链接 插入图片 有序列表 无序列表 创建表格 单选框 表 ...

  10. 人体调优不完全指南「GitHub 热点速览 v.22.22」

    本周特推又是一个人体调优项目,换而言之就是如何健康生活,同之前的 HowToLiveLonger研究全因死亡率不同,这个项目更容易在生活中实践,比如,早起晒太阳这么一件"小事"便有 ...