微信小程序 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技巧
Dec 06 Javascript
JQuery 学习笔记 选择器之六
Jul 23 Javascript
基于jQuery的仿flash的广告轮播
Nov 05 Javascript
没有document.getElementByName方法
Aug 19 Javascript
ie7+背景透明文字不透明超级简单的实现方法
Jan 17 Javascript
原生javascript实现图片按钮切换
Jan 12 Javascript
jQuery插件imgPreviewQs实现上传图片预览
Jan 15 Javascript
AngularJS入门教程中SQL实例详解
Jul 27 Javascript
总结JavaScript的正则与其他语言的不同之处
Aug 25 Javascript
Vuex模块化实现待办事项的状态管理
Mar 15 Javascript
JS脚本实现定时到网站上签到/签退功能
Apr 22 Javascript
vue中使用router全局守卫实现页面拦截的示例
Oct 23 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
一个用php3编写的简单计数器
2006/10/09 PHP
php数组的一些常见操作汇总
2011/07/17 PHP
PHP中使用Memache作为进程锁的操作类分享
2015/03/30 PHP
php自定义分页类完整实例
2015/12/25 PHP
PHP简单获取网站百度搜索和搜狗搜索收录量的方法
2016/08/23 PHP
PHP实现随机发扑克牌
2020/04/22 PHP
IE FF OPERA都可用的弹出层实现代码
2009/09/29 Javascript
jQuery EasyUI API 中文文档 - DataGrid数据表格
2011/11/17 Javascript
深入理解JavaScript系列(11) 执行上下文(Execution Contexts)
2012/01/15 Javascript
cookie.js 加载顺序问题怎么才有效
2013/07/31 Javascript
深入理解javascript动态插入技术
2013/11/12 Javascript
JavaScript操作Oracle数据库示例
2015/03/06 Javascript
详解javascript数组去重问题
2015/11/06 Javascript
jQuery进行组件开发完整实例
2015/12/15 Javascript
利用Javascript实现BMI计算器
2016/08/16 Javascript
利用angularjs1.4制作的简易滑动门效果
2017/02/28 Javascript
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
2018/04/08 Javascript
浅析vue 函数配置项watch及函数 $watch 源码分享
2018/11/22 Javascript
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
2018/11/30 Javascript
react基本安装与测试示例
2020/04/27 Javascript
JavaScript常用进制转换及位运算实例解析
2020/10/14 Javascript
vue解决跨域问题(推荐)
2020/11/10 Javascript
使用Pyrex来扩展和加速Python程序的教程
2015/04/13 Python
python中requests小技巧
2017/05/10 Python
Python自定义简单图轴简单实例
2018/01/08 Python
PyCharm代码整体缩进,反向缩进的方法
2018/06/25 Python
python+mysql实现学生信息查询系统
2019/02/21 Python
自定义django admin model表单提交的例子
2019/08/23 Python
使用matplotlib动态刷新指定曲线实例
2020/04/23 Python
Python使用sys.exc_info()方法获取异常信息
2020/07/23 Python
Python和Bash结合在一起的方法
2020/11/13 Python
详解HTML5.2版本带来的修改
2020/05/06 HTML / CSS
优秀毕业生自我鉴定
2014/02/11 职场文书
《巨人的花园》教学反思
2016/02/19 职场文书
《三国志》赏析
2019/08/27 职场文书
python实现双向链表原理
2022/05/25 Python