微信小程序 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 相关文章推荐
js实现简单模态窗口,背景灰显
Nov 14 Javascript
JavaScript的arguments对象应用示例
Sep 15 Javascript
JS实现从表格中动态删除指定行的方法
Mar 31 Javascript
javascript中in运算符用法分析
Apr 28 Javascript
CSS或者JS实现鼠标悬停显示另一元素
Jan 22 Javascript
第十章之巨幕页头缩略图与警告框组件
Apr 25 Javascript
JS实现pasteHTML兼容ie,firefox,chrome的方法
Jun 22 Javascript
Sortable.js拖拽排序使用方法解析
Nov 04 Javascript
Angularjs单选改为多选的开发过程及问题解析
Feb 17 Javascript
微信小程序swiper组件用法实例分析【附源码下载】
Dec 07 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
May 13 Javascript
jQuery实现模拟搜索引擎的智能提示功能简单示例
Jan 27 jQuery
微信小程序 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数据结构与算法(PHP描述) 快速排序 quick sort
2012/06/21 PHP
PHP APC的安装与使用详解
2013/06/13 PHP
PHP自动识别字符集并完成转码详解
2013/08/02 PHP
php getcwd与dirname(__FILE__)区别详解
2016/09/24 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
使用git迁移Laravel项目至新开发环境的步骤详解
2020/04/06 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
用JS操作FRAME中的IFRAME及其内容的实现代码
2008/07/26 Javascript
Jquery Autocomplete 结合asp.net使用要点
2010/10/29 Javascript
利用try-catch判断变量是已声明未声明还是未赋值
2014/03/12 Javascript
使用JavaScript获取电池状态的方法
2014/05/03 Javascript
JavaScript获取当前日期是星期几的方法
2015/04/06 Javascript
javascript自定义in_array()函数实现方法
2015/08/03 Javascript
jQuery中animate()的使用方法及解决$(”body“).animate({“scrollTop”:top})不被Firefox支持的问题
2017/04/04 jQuery
Javascript es7中比较实用的两个方法示例
2017/07/21 Javascript
将 vue 生成的 js 上传到七牛的实例
2017/07/28 Javascript
Vue.js中的computed工作原理
2018/03/22 Javascript
React中使用外部样式的3种方式(小结)
2019/05/28 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
使用Vue实现简单计算器
2020/02/25 Javascript
node创建Vue项目步骤详解
2020/03/06 Javascript
[02:11]2014DOTA2 TI专访VG战队Fenrir:队伍气氛良好
2014/07/11 DOTA
使用pdb模块调试Python程序实例
2015/06/02 Python
Windows下Python2与Python3两个版本共存的方法详解
2017/02/12 Python
kali中python版本的切换方法
2019/07/11 Python
用Python+OpenCV对比图像质量的几种方法
2019/07/15 Python
从numpy数组中取出满足条件的元素示例
2019/11/26 Python
基于spring boot 日志(logback)报错的解决方式
2020/02/20 Python
英国复古和经典球衣网站:Vintage Football Shirts
2018/10/05 全球购物
雅虎笔试题(字符串操作)
2015/03/24 面试题
儿媳婚宴答谢词
2014/01/14 职场文书
决心书格式范文
2015/09/23 职场文书
Python获取百度热搜的完整代码
2021/04/07 Python
如何有效防止sql注入的方法
2021/05/25 SQL Server
详解vue身份认证管理和租户管理
2021/05/25 Vue.js
如何优化vue打包文件过大
2022/04/13 Vue.js