当前位置:首页 > PHP教程 > php高级应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2022-04-18 10:03:09 浏览: 评论:0 

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

遇到的坑:

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

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

解决办法:

设置请求的 header头:

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

特别注意: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.     public function _initialize(){       
  9.         parent::_initialize(); 
  10.     }  
  11.    
  12.  public function updatePhone(){ 
  13.  if(!isset($_POST['phone'])||!isset($_POST['openid'])){ 
  14.   header("Content-type: text/html; charset=utf-8");  
  15.   echo '参数错误'.$_POST['phone']; 
  16.   exit
  17.  }   
  18.         $openid= trim($_POST['openid']); 
  19.         try{ 
  20.             $updata['tel'] = trim($_POST['phone']); 
  21.             Db::name('user')->where('wxopenid',$openid)->update($updata); 
  22.             $code=1; 
  23.             $msg="修改成功"
  24.         } catch (\Exception $e) { 
  25.             $code=0; 
  26.             $msg="修改失败"
  27.         } 
  28.         return $this->outputMsg($code,$msg); 
  29.  } 
  30. }

Tags: wx.request POST请求

分享到: