微信小程序 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 相关文章推荐
IE bug table元素的innerHTML
Jan 11 Javascript
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
Oct 11 Javascript
js 加密压缩出现bug解决方案
Nov 25 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
May 04 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
Sep 23 Javascript
Bootstrap基本样式学习笔记之按钮(4)
Dec 07 Javascript
Angularjs 动态添加指令并绑定事件的方法
Apr 13 Javascript
详解vue.js的devtools安装
May 26 Javascript
Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案
May 15 Javascript
JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
May 31 jQuery
jQuery实现ajax回调函数带入参数的方法示例
Jun 26 jQuery
详解JS数组方法
Nov 20 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
2006/10/09 PHP
php 如何获取数组第一个值
2013/08/06 PHP
Laravel框架数据库CURD操作、连贯操作总结
2014/09/03 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
PHP基于SPL实现的迭代器模式示例
2018/04/22 PHP
jQuery Ajax之$.get()方法和$.post()方法
2009/10/12 Javascript
jQuery学习总结之元素的相对定位和选择器(持续更新)
2011/04/26 Javascript
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
2012/10/11 Javascript
JS继承--原型链继承和类式继承
2013/04/08 Javascript
JS实现随机化快速排序的实例代码
2013/08/01 Javascript
jquery实现增加删除行的方法
2015/02/03 Javascript
jQuery Mobile动态刷新页面样式的实现方法
2016/05/28 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
2016/08/25 Javascript
js将字符串中的每一个单词的首字母变为大写其余均为小写
2017/01/05 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
2017/08/08 Javascript
JS函数节流和函数防抖问题分析
2017/12/18 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
详解Vue.js中.native修饰符
2018/04/24 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
2018/08/08 Javascript
微信小程序实现购物车小功能
2020/12/30 Javascript
解决vue项目本地启动时无法携带cookie的问题
2021/02/06 Vue.js
Python循环语句之break与continue的用法
2015/10/14 Python
python实现将excel文件转化成CSV格式
2018/03/22 Python
Python代理IP爬虫的新手使用教程
2019/09/05 Python
Python3 元组tuple入门基础
2020/02/09 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
使用python 计算百分位数实现数据分箱代码
2020/03/03 Python
在python中使用nohup命令说明
2020/04/16 Python
维多利亚的秘密阿联酋官网:Victoria’s Secret阿联酋
2019/12/07 全球购物
国外软件测试工程师面试题
2016/12/09 面试题
自荐信格式技巧有哪些呢
2013/11/19 职场文书
医院我们的节日活动实施方案
2014/08/22 职场文书
九一八事变纪念日演讲稿
2014/09/14 职场文书
同学聚会通知书
2015/04/20 职场文书
MySQL基础(一)
2021/04/05 MySQL
Oracle删除归档日志及添加定时任务
2022/06/28 Oracle