微信小程序 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 相关文章推荐
javascript在一段文字中的光标处插入其他文字
Aug 26 Javascript
详解JS函数重载
Dec 04 Javascript
js 左右悬浮对联广告特效代码
Dec 12 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
Apr 03 Javascript
JavaScript中几种排序算法的简单实现
Jul 29 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
Nov 30 Javascript
jQuery+canvas实现简单的球体斜抛及颜色动态变换效果
Jan 28 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
Dec 12 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
Apr 10 jQuery
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
Jan 18 Javascript
Vue实现开关按钮拖拽效果
Sep 22 Javascript
WebRTC记录音视频流(web技术分享)
Feb 24 Javascript
微信小程序 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
php微信公众号开发之秒杀
2018/10/20 PHP
JavaScript 命名空间 使用介绍
2013/08/29 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
2014/05/05 Javascript
angular.foreach 循环方法使用指南
2015/01/06 Javascript
手机软键盘弹出时影响布局的解决方法
2016/12/15 Javascript
vue2.0构建单页应用最佳实战
2017/04/01 Javascript
vue-router+vuex addRoutes实现路由动态加载及菜单动态加载
2017/09/28 Javascript
快速解决vue-cli在ie9+中无效的问题
2018/09/04 Javascript
nuxt中使用路由守卫的方法步骤
2019/01/27 Javascript
vue路由导航守卫和请求拦截以及基于node的token认证的方法
2019/04/07 Javascript
Vue实现购物车的全选、单选、显示商品价格代码实例
2019/05/06 Javascript
npm的lock机制解析
2019/06/20 Javascript
Python版实现微信公众号扫码登陆
2020/05/28 Javascript
在vue中使用vant TreeSelect分类选择组件操作
2020/11/02 Javascript
Python切片用法实例教程
2014/09/08 Python
Python中的数据对象持久化存储模块pickle的使用示例
2016/03/03 Python
Python 正则表达式实现计算器功能
2017/04/29 Python
Linux下python与C++使用dlib实现人脸检测
2018/06/29 Python
Python实现端口检测的方法
2018/07/24 Python
django框架自定义用户表操作示例
2018/08/07 Python
python实现生成字符串大小写字母和数字的各种组合
2019/01/01 Python
初探利用Python进行图文识别(OCR)
2019/02/26 Python
python爬取Ajax动态加载网页过程解析
2019/09/05 Python
Python使用py2neo操作图数据库neo4j的方法详解
2020/01/13 Python
解决Tensorflow 内存泄露问题
2020/02/05 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
值传递还是引用传递
2015/02/08 面试题
英文翻译的自我评价语句
2013/10/04 职场文书
工程测量与监理专业应届生求职信
2013/11/27 职场文书
室内设计专业个人的自我评价
2013/12/18 职场文书
社区志愿者心得体会
2014/01/03 职场文书
应届毕业生个人求职自荐信
2014/01/06 职场文书
大型演出策划方案
2014/05/28 职场文书
通报表扬范文
2015/01/17 职场文书
社团招新宣传语
2015/07/13 职场文书
2019年家电促销广告语集锦
2019/10/21 职场文书