微信小程序 POST请求(网络请求)详解及实例代码


Posted in Javascript onNovember 16, 2016

微信小程序 POST请求

微信小程序开发中网络请求必不可少.GET.POST请求是最常用的.GET请求,POST请求的时候有好几个坑.我已经为大家填好了.

<img src="http://img.blog.csdn.net/20161017170933243?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" align="middle" alt="" />

按照文档,肯定是这么写.那就入坑了.

1. 'Content-Type': 'application/json'用在get请求中没问题.

POST请求就不好使了.需要改成: "Content-Type": "application/x-www-form-urlencoded"

2016.11.10更新:有同学在将content-type 修改为小写后,post请求成功.

2. 加上method: "POST"

3.data: { cityname: "上海", key: "1430ec127e097e1113259c5e1be1ba70" }写成json格式这样也是请求不到数据的.需要转格式.

下面直接贴代码:

 3.1

<span style="font-size:24px;">//index.js 
//获取应用实例 
var app = getApp() 
Page( { 
 data: { 
  toastHidden: true, 
  city_name: '', 
 }, 
 onLoad: function() { 
  that = this; 
  wx.request( { 
   url: "http://op.juhe.cn/onebox/weather/query", 
   header: { 
    "Content-Type": "application/x-www-form-urlencoded" 
   }, 
   method: "POST", 
   //data: { cityname: "上海", key: "1430ec127e097e1113259c5e1be1ba70" }, 
   data: Util.json2Form( { cityname: "上海", key: "1430ec127e097e1113259c5e1be1ba70" }), 
   complete: function( res ) { 
    that.setData( { 
     toastHidden: false, 
     toastText: res.data.reason, 
     city_name: res.data.result.data.realtime.city_name, 
     date: res.data.result.data.realtime.date, 
     info: res.data.result.data.realtime.weather.info, 
    }); 
    if( res == null || res.data == null ) { 
     console.error( '网络请求失败' ); 
     return; 
    } 
   } 
  }) 
 }, 
 onToastChanged: function() { 
  that.setData( { toastHidden: true }); 
 } 
}) 
var that; 
var Util = require( '../../utils/util.js' );</span>

3.2

<span style="font-size:24px;"><!--index.wxml--> 
<view class="container"> 
  <toast hidden="{{toastHidden}}" bindchange="onToastChanged"> 
    {{toastText}} 
  </toast> 
  <view>{{city_name}}</view> 
  <view>{{date}}</view> 
  <view>{{info}}</view> 
</view></span>

3.3

<span style="font-size:24px;">//util.js 
function json2Form(json) { 
  var str = []; 
  for(var p in json){ 
    str.push(encodeURIComponent(p) + "=" + encodeURIComponent(json[p])); 
  } 
  return str.join("&"); 
} 
module.exports = { 
 json2Form:json2Form, 
}</span>

微信小程序 POST请求(网络请求)详解及实例代码

希望对大家有帮助.

Javascript 相关文章推荐
百度Popup.js弹出框进化版 拖拽小框架发布 兼容IE6/7/8,Firefox,Chrome
Apr 13 Javascript
基于JQuery实现相同内容合并单元格的代码
Jan 12 Javascript
Jquery异步请求数据实例代码
Dec 28 Javascript
浏览器缩放检测的js代码
Sep 28 Javascript
在Javascript中处理数组之toSource()方法的使用
Jun 09 Javascript
用svg制作富有动态的tooltip
Jul 17 Javascript
WebApi+Bootstrap+KnockoutJs打造单页面程序
May 16 Javascript
jQuery基本选择器(实例及表单域value的获取方法)
May 20 Javascript
jQuery实现键盘回车搜索功能
Jul 25 jQuery
详解关于html,css,js三者的加载顺序问题
Apr 10 Javascript
使用Webpack 搭建 Vue3 开发环境过程详解
Jul 28 Javascript
如何在 Vue 表单中处理图片
Jan 26 Vue.js
微信小程序 swiper组件轮播图详解及实例
Nov 16 #Javascript
input框中的name和id的区别
Nov 16 #Javascript
微信小程序 页面传参实例详解
Nov 16 #Javascript
JS中关于事件处理函数名后面是否带括号的问题
Nov 16 #Javascript
微信小程序 时间格式化(util.formatTime(new Date))详解
Nov 16 #Javascript
jQuery实现的购物车物品数量加减功能代码
Nov 16 #Javascript
使用JavaScript获取URL中的参数(两种方法)
Nov 16 #Javascript
You might like
echo, print, printf 和 sprintf 区别
2006/12/06 PHP
打造超酷的PHP数据饼图效果实现代码
2011/11/23 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
2020/04/26 PHP
如何使用jquery动态加载js,css文件实现代码
2013/04/03 Javascript
分享一个常用的javascript静态类
2014/12/31 Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
2015/09/10 Javascript
详解javascript数组去重问题
2015/11/06 Javascript
省市二级联动小案例讲解
2016/07/24 Javascript
AngularJS 中的Promise --- $q服务详解
2016/09/14 Javascript
bootstrap suggest搜索建议插件使用详解
2017/03/25 Javascript
vue bootstrap小例子一枚
2017/06/09 Javascript
Angular2 父子组件数据通信实例
2017/06/22 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
2017/11/17 Javascript
JS实现多物体运动的方法详解
2018/01/23 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
2019/02/02 NodeJs
vue工程全局设置ajax的等待动效的方法
2019/02/22 Javascript
javascript原型链学习记录之继承实现方式分析
2019/05/01 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
Python和JavaScript间代码转换的4个工具
2016/02/22 Python
Python如何执行精确的浮点数运算
2020/07/31 Python
Python实现冒泡排序算法的完整实例
2020/11/04 Python
CSS实现鼠标滑过鼠标点击代码写法
2016/12/26 HTML / CSS
倩碧香港官方网站:Clinique香港
2017/11/13 全球购物
德国电子产品购物网站:TechInTheBasket德国
2018/12/07 全球购物
工商企业管理实习自我鉴定
2013/12/04 职场文书
哈弗商学院毕业生求职信
2014/02/26 职场文书
导师评语大全
2014/04/26 职场文书
乡镇领导班子批评与自我批评材料
2014/09/23 职场文书
2015年护士工作总结范文
2015/03/31 职场文书
忠诚与背叛观后感
2015/06/04 职场文书
导游词之长城八达岭
2019/09/24 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书
python flappy bird小游戏分步实现流程
2022/02/15 Python
MySQL实现配置主从复制项目实践
2022/03/31 MySQL