微信小程序给 thinkphp后端发送请求出现错误 Wrong number of segments 问题的解决 【踩坑记录】

微信小程序给 thinkphp后端发送请求出现错误 Wrong number of segments 问题的解决 【踩坑记录】

微信小程序代码部分

 //给后端接口发送一个json请求,并且得通过token鉴权
 ToUpdatePwd(){
       wx.request({
         url: 'http://robin.com/User',
         method:'POST',
         header:{
            'content-type': 'application/json', 
            'token':store.token
        },
         success(res){
             console.log(res.data)
         }
       })
    },

PHP后端部分

 public function handle($request,Closure $next)
    {
        //第一步先取token
        $token = $request->header('token');
        // 先判断token是否为空
        if(!$token){
            return  json(['error_code'=>999,'msg'=>'token不存在','data'=>''],440);
        }
        // token 存在 再使用jwt进行校验token
        $res = (new TokenServer())->checkToken($token);
        if ($res['code'] != 1 ){
            return json(['error_code'=>999,'msg'=>$res['msg'],'data'=>''],400);
        }
        $request->uid = $res['data']->uid;
        return $next($request);
    }

错误显示

在这里插入图片描述

这里提示 wrong number of segements , 百度了一下说这个问题是 后端解码token缺了一些东西(没正确的解码),然后我去抓了下包发现,我小程序端发送请求的时候,token是undifend,然后检查了一下store中的token发现,是我写错了变量名(😂好低级的错误)

在这里插入图片描述

解决方案及步骤(总结)

微信小程序向后端发送请求时出现"Wrong number of segments"错误,通常是由于请求的URL路径不正确或请求参数不符合规范所导致的。

在ThinkPHP后端中,这个错误通常发生在执行控制器方法之前,因为ThinkPHP会根据请求的URL路径来匹配相应的控制器和方法。

要解决这个问题,你可以按照以下步骤进行排查:

  1. 检查请求的URL路径是否正确。确保你在微信小程序中发送请求时,URL路径是正确的。例如,如果你在ThinkPHP中定义了一个控制器名为"Index",并且该控制器有一个名为"test"的方法,那么正确的URL路径应该是类似于"http://example.com/index/test"的形式。
  2. 检查请求的参数是否符合规范。如果你的控制器方法需要接收参数,确保你在微信小程序中发送请求时,参数的数量和格式是正确的。例如,如果你的控制器方法需要接收两个参数,那么你在微信小程序中发送请求时也需要提供两个参数。
  3. 检查URL路径和参数是否与路由配置匹配。在ThinkPHP中,你可以在路由配置文件中定义URL路径和参数的映射关系。确保你在路由配置文件中定义的路径和参数与你的控制器方法的定义相匹配。

如果以上步骤都没有解决问题,你可以进一步检查你的控制器方法和路由配置,确保它们没有其他错误或问题。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 写微信小程序后端需要以下几个步骤: 1. 环境搭建:需要搭建 PHP 环境,安装 ThinkPHP 框架,以及安装微信开发者工具。 2. 注册小程序:在微信公众平台注册小程序,获取小程序的 AppID 和 AppSecret,用于后续开发中的身份验证和 API 调用。 3. 配置接口:在微信公众平台中配置小程序的接口信息,包括接口地址、Token、EncodingAESKey 等信息。 4. 开发 API:根据小程序需求,设计并开发相应的 API 接口,可以使用 ThinkPHP 提供的 RESTful API 快速搭建。 5. 身份验证:在开发 API 的过程中,需要对请求进行身份验证,确保只有授权的用户可以访问相应的 API。 6. 数据库操作:使用 ThinkPHP 提供的数据库操作接口,对数据库进行增、删、改、查等操作。 7. 返回数据:在 API 接口的实现中,需要将查询到的数据返回给小程序端。可以使用 JSON 格式或其他格式。 8. 调试和部署:在开发过程中,需要进行调试和测试。当测试通过后,可以将代码部署到服务器上,供小程序调用。 总的来说,使用 ThinkPHP 开发微信小程序后端,需要掌握 PHP 开发技术和数据库操作技术,并熟悉微信小程序开发的流程和接口调用方式。 ### 回答2: thinkphp是一款基于PHP语言开发的MVC框架,用于构建Web应用程序。如果我们想要使用thinkphp来开发微信小程序后端,我们可以按照以下思路进行: 1. 搭建开发环境:首先,我们需要在本机搭建PHP开发环境,并安装thinkphp框架。可以使用XAMPP、WAMP或者LAMP等工具来搭建环境,并从thinkphp官方网站下载最新版本的框架。 2. 创建项目和模块:在thinkphp框架中,我们可以使用命令行工具或者手动创建来创建一个新的项目。然后,我们可以根据微信小程序的需求,创建相应的控制器、模型和视图等模块。 3. 配置数据库连接:在thinkphp的配置文件中,我们需要配置数据库连接信息,以便于在后端与数据库进行交互。可以在配置文件中设置数据库的类型、主机地址、数据库名、用户名和密码等。 4. 数据库操作:利用thinkphp提供的ORM(对象关系映射)功能,我们可以通过定义模型类来简化与数据库的交互。可以使用模型中提供的方法来进行数据的增删改查操作,以及数据的关联查询等。 5. 接口开发:对于微信小程序后端的交互,我们可以定义相应的接口来处理前端的请求。通过接口,前端可以发送HTTP请求后端,并传递相应的参数。后端可以根据接口进行数据的处理和逻辑的操作,并返回相应的结果给前端。 6. 接口权限验证:在微信小程序中,我们可以使用微信提供的登录机制来获取用户的OpenID,并将其作为用户的唯一标识。在后端接口中,我们可以通过验证用户的OpenID来进行接口权限的控制,确保只有合法的用户才能访问接口。 7. 数据返回格式化:在后端的接口开发过程中,我们需要将数据以统一的格式返回给前端。可以使用thinkphp提供的返回格式封装函数,将数据封装成JSON格式并返回给前端。 总之,使用thinkphp开发微信小程序后端需要通过搭建开发环境、创建项目和模块、配置数据库连接、数据库操作、接口开发、接口权限验证等步骤。这样,我们就可以基于thinkphp框架来实现微信小程序后端逻辑和数据交互。 ### 回答3: thinkphp是一款开源的PHP框架,适用于快速开发Web应用程序。如果要使用thinkphp来开发微信小程序后端,可以按照以下思路进行: 1. 配置环境:首先,确保服务器上已经安装了PHP环境,并下载、安装好thinkphp框架,同时要确保安装了与微信小程序交互的SDK。 2. 数据库设计:根据小程序的需求,设计好数据库的表结构,包括用户表、数据表等。 3. 创建控制器:根据业务逻辑,在thinkphp中创建相应的控制器文件,用于处理来自小程序前端的请求。 4. 实现接口:在控制器中实现与小程序前端交互的接口,包括用户登录、数据查询、数据添加、数据更新等功能。可以使用thinkphp提供的数据库查询方法、数据验证、数据过滤等函数。 5. 用户验证:在接口中实现用户登录验证的逻辑,可以通过小程序前端传递的用户标识进行验证,并同时保存用户信息到数据库中。 6. 数据交互:通过接口,实现小程序前端与后台的数据交互。可以使用thinkphp提供的数据返回函数,将查询到的数据以JSON格式返回给小程序前端。 7. 安全性考虑:在小程序后端开发过程中,需要考虑数据的安全性。可以使用thinkphp的安全函数对接收到的数据进行过滤,避免SQL注入等安全问题。 8. 错误处理:在接口中,加入错误处理机制,对可能出现错误进行捕获和处理,并返回相应的错误信息给小程序前端。 9. 日志记录:使用thinkphp提供的日志记录功能,对后端的运行情况进行记录,以便后期的排查和调试。 总之,使用thinkphp开发微信小程序后端,需要根据小程序的需求进行数据库设计,创建相应的控制器文件,实现接口以及相应的业务逻辑,并加入相应的安全性考虑和错误处理机制,以确保小程序后端的稳定性和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杀死一只知更鸟debug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值