微信小程序 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 18 Javascript
收集的一些Array及String原型对象的扩展实现代码
Dec 05 Javascript
javascript中onclick(this)用法介绍
Apr 19 Javascript
js和jQuery设置Opacity半透明 兼容IE6
May 24 Javascript
浅谈JavaScript 中有关时间对象的方法
Aug 15 Javascript
jQuery zTree树插件简单使用教程
Jan 10 Javascript
jquery mobile实现可折叠的导航按钮
Mar 11 Javascript
vue 使用ref 让父组件调用子组件的方法
Feb 08 Javascript
Vue 开发音乐播放器之歌手页右侧快速入口功能
Aug 08 Javascript
优雅的elementUI table单元格可编辑实现方法详解
Dec 23 Javascript
详解vue页面首次加载缓慢原因及解决方案
Nov 06 Javascript
基于VSCode调试网页JavaScript代码过程详解
Jul 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安全之直接用$获取值而不$_GET 字符转义
2012/06/03 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
2014/04/28 PHP
PHP经典面试题之设计模式(经常遇到)
2015/10/15 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
2017/05/23 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
A标签中通过href和onclick传递的this对象实现思路
2013/04/19 Javascript
js事件冒泡实例分享(已测试)
2013/04/23 Javascript
js与jQuery 获取父窗、子窗的iframe
2013/12/20 Javascript
js导出txt示例代码
2014/01/14 Javascript
js/jquery获取文本框输入焦点的方法
2014/03/04 Javascript
jquery实现的动态回到顶部特效代码
2015/10/28 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
2016/04/26 Javascript
jQuery中的on与bind绑定事件区别实例详解
2017/02/28 Javascript
JS中mouseup事件丢失的原因与解决办法
2017/06/14 Javascript
解决JS内存泄露之js对象和dom对象互相引用问题
2017/06/25 Javascript
彻底理解js面向对象之继承
2018/02/04 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
2019/01/18 jQuery
ionic4+angular7+cordova上传图片功能的实例代码
2019/06/19 Javascript
javascript数组元素删除方法delete和splice解析
2019/12/09 Javascript
vue实现表单未编辑或未保存离开弹窗提示功能
2020/04/08 Javascript
[59:30]完美世界DOTA2联赛PWL S3 access vs LBZS 第二场 12.20
2020/12/23 DOTA
PHP实现发送和接收JSON请求
2018/06/07 Python
Python 运行.py文件和交互式运行代码的区别详解
2019/07/02 Python
python动态进度条的实现代码
2019/07/03 Python
详解Python Celery和RabbitMQ实战教程
2021/01/20 Python
css3个性化字体_动力节点Java学院整理
2017/07/12 HTML / CSS
css3中背景尺寸background-size详解
2014/09/02 HTML / CSS
美国伊甸园兄弟种子公司:Eden Brothers
2018/07/01 全球购物
美国婴儿和儿童家具网上商店:ABaby.com
2018/07/02 全球购物
Diptyque英国官方网站:源自法国的知名香氛品牌
2019/08/28 全球购物
Java编程面试题
2016/04/04 面试题
成事在人观后感
2015/06/16 职场文书
小学作文指导之如何写人?
2019/07/08 职场文书
《原神》新角色演示“神里绫人:林隐泓洄” 宠妹狂魔
2022/04/03 其他游戏
《极主夫道》真人电影正式预告 定档6月3日上映
2022/04/05 日漫