微信小程序 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 相关文章推荐
文本加密解密
Jun 23 Javascript
Javascript 去除数组的重复元素
May 04 Javascript
用js实现小球的自由移动代码
Apr 22 Javascript
PHP使用方法重载实现动态创建属性的get和set方法
Nov 17 Javascript
js实现上一页下一页的效果【附代码】
Mar 10 Javascript
vuejs动态组件给子组件传递数据的方法详解
Sep 09 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
Oct 27 Javascript
node.js版本管理工具n无效的原理和解决方法
Nov 24 Javascript
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
Mar 01 Javascript
用原生 JS 实现 innerHTML 功能实例详解
Apr 03 Javascript
VUE 组件转换为微信小程序组件的方法
Nov 06 Javascript
微信小程序实现身份证取景框拍摄
Sep 09 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高级对象构建 多个构造函数的使用
2012/02/05 PHP
PHP 使用pcntl和libevent 实现Timer功能
2013/10/27 PHP
Drupal简体中文语言包安装教程
2014/09/27 PHP
php中socket通信机制实例详解
2015/01/03 PHP
解决表单中第一个非隐藏的元素获得焦点的一个方案
2009/10/26 Javascript
jquery ajax提交整个表单元素的快捷办法
2013/03/27 Javascript
js中Math之random,round,ceil,floor的用法总结
2013/12/26 Javascript
js去除输入框中所有的空格和禁止输入空格的方法
2014/06/09 Javascript
基于Jquery+Ajax+Json实现分页显示附效果图
2014/07/30 Javascript
jQuery实现跟随鼠标运动图层效果的方法
2015/02/02 Javascript
JQuery+Ajax实现数据查询、排序和分页功能
2015/09/27 Javascript
JavaScript中使用sencha gridpanel 编辑单元格、改变单元格颜色
2015/11/26 Javascript
JS实现回到页面顶部动画效果的简单实例
2016/05/24 Javascript
JavaScript数组实现数据结构中的队列与堆栈
2016/05/26 Javascript
jQuery实现表格的增、删、改操作示例
2019/01/27 jQuery
浅谈Vue CLI 3结合Lerna进行UI框架设计
2019/04/14 Javascript
JavaScript 函数用法详解【函数定义、参数、绑定、作用域、闭包等】
2020/05/12 Javascript
js实现星星打分效果
2020/07/05 Javascript
我所理解的JavaScript中的this指向
2020/09/04 Javascript
区分vue-router的hash和history模式
2020/10/03 Javascript
vue实现两个组件之间数据共享和修改操作
2020/11/12 Javascript
浅谈Python中的zip()与*zip()函数详解
2018/02/24 Python
Django框架获取form表单数据方式总结
2020/04/22 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
HTML5注册页面示例代码
2014/03/27 HTML / CSS
英国袜子店:Sock Shop
2017/01/11 全球购物
夏威夷灵感服装及配饰:Reyn Spooner
2018/09/18 全球购物
外企测试工程师面试题
2015/02/01 面试题
PHP引擎php.ini参数优化深入讲解
2021/03/24 PHP
幼儿园教师工作制度
2014/01/22 职场文书
工作睡觉检讨书
2014/02/25 职场文书
土地租赁协议书
2015/01/29 职场文书
基层医务人员三严三实心得体会
2016/01/05 职场文书
JS ES6异步解决方案
2021/04/29 Javascript
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL