欢迎光临,了解微信小程序开发,就上易用通!

面向新手系列《五》POST请求,服务器接收不到data参数问题

发布:2018-01-31 10:45浏览: 来源:网络 作者:cola

需要修改以下三个步骤
1. 'Content-Type': 'application/json'用在get请求中没问题.
POST请求就不好使了.需要改成: "Content-Type": "application/x-www-form-urlencoded"
 
2. 加上method: "POST"
 

3.data: { cityname: "上海", key: "1430ec127e097e1113259c5e1be1ba70" }写成json格式这样也是请求不到数据的.需要转格式.
3.1
var Util = require( '../../utils/util.js' );

data: Util.json2Form( { cityname: "上海", key: "1430ec127e097e1113259c5e1be1ba70" }),

 
3.2
function json2Form(json) {  

    var str = [];  

    for(var p in json){  

        str.push(encodeURIComponent(p) + "=" + encodeURIComponent(json[p]));  

    }  

    return str.join("&");  

}  

module.exports = {  

  json2Form:json2Form,  


}

整体示例代码:
1:
//获取应用实例  

var app = getApp()  

Page( {  

  data: {  

    toastHidden: true,  

    city_name: '',  

  },  

  onLoad: function() {  

    that = this;  

    wx.request( {  

      url: "https://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' );
2:
function json2Form(json) {  

    var str = [];  

    for(var p in json){  

        str.push(encodeURIComponent(p) + "=" + encodeURIComponent(json[p]));  

    }  

    return str.join("&");  

}  

module.exports = {  

  json2Form:json2Form,  

}





免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。