微信小程序wx.request使用POST请求时后端无法获取数据解决办法

 4638

这篇文章主要介绍了微信小程序wx.request使用POST请求时后端无法获取数据解决办法,解决办法其实也很简单,有需要的同学可以尝试下

遇到的坑:

例如在写微信小程序接口时,method请求方式有POST和GET两种,为了数据安全,我们会偏向于使用POST请求方式访问服务器端;

当我们使用POST方式请求时,后端无法获取到传送的参数,但使用GET方式却是可以的。

解决办法:

设置请求的 header头:

  1. header: { "Content-Type": "application/x-www-form-urlencoded" },


微信小程序wx.request使用POST请求时后端无法获取数据解决办法


特别注意:post请求必须写method: 'POST',因为wx.request默认是GET请求的。


示例代码:

微信小程序的 index.js

  1. wx.request({ 
  2.     url: 'https://后端网址/user/updatePhone.html',
  3.     method: 'POST',
  4.     data: { phone: _phone, openid: _openid},
  5.     header: { "Content-Type": "application/x-www-form-urlencoded" },
  6.     success: res => {
  7.         console.log(res.data);
  8.     }
  9. });

thinkphp后端控制器代码:

  1. <?php
  2. namespace app\car\controller;
  3. use think\Controller;
  4. use think\Db;
  5. use think\Request;
  6.  
  7. class User extends Base
  8. {
  9.     public function _initialize(){      
  10.         parent::_initialize();
  11.     } 
  12.  
  13.     public function updatePhone()
  14.     {
  15.         if(!isset($_POST['phone'])||!isset($_POST['openid'])){
  16.             header("Content-type: text/html; charset=utf-8"); 
  17.             echo '参数错误'.$_POST['phone'];
  18.             exit;
  19.         }  
  20.         $openid= trim($_POST['openid']);
  21.         try{
  22.             $updata['tel'] = trim($_POST['phone']);
  23.             Db::name('user')->where('wxopenid',$openid)->update($updata);
  24.             $code=1;
  25.             $msg="修改成功";
  26.         } catch (\Exception $e) {
  27.             $code=0;
  28.             $msg="修改失败";
  29.         }
  30.         return $this->outputMsg($code,$msg);
  31.     }
  32. }



本文网址:https://www.zztuku.com/index.php/detail-8720.html
站长图库 - 微信小程序wx.request使用POST请求时后端无法获取数据解决办法
申明:如有侵犯,请 联系我们 删除。

评论(0)条

您还没有登录,请 登录 后发表评论!

提示:请勿发布广告垃圾评论,否则封号处理!!

    编辑推荐

    PHP怎么实现评论回复功能