zoukankan      html  css  js  c++  java
  • 微信小程序 POST请求

    微信小程序 POST请求

    微信小程序开发中网络请求必不可少.GET.POST请求是最常用的.GET请求,POST请求的时候有好几个坑.我已经为大家填好了.

    <img src="//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> 
    
    

  • 相关阅读:
    《数据结构第一章复习》
    《图的基本操作》
    《矩阵的一些基本操作》
    <矩阵的基本操作:矩阵相加,矩阵相乘,矩阵转置>
    《两个二维数组(矩阵)相乘》
    C#隐藏与显示系统任务栏和开始菜单栏按钮
    C#通过窗体属性缩小一定尺寸时,无法再缩小窗体尺寸问题
    C#一个窗体调用另一个窗体的方法
    C#异步线程
    C#中MessageBox.Show问题(让提示窗口不显示在任务栏中)
  • 原文地址:https://www.cnblogs.com/yingsu/p/6841473.html
Copyright © 2011-2022 走看看