关于TP6异步请求没返回数据的处理方法

分享
已结 精华
1 821
chichu
chichu 2023-08-17

有时候,我们用TP6的框架做开发,会碰到异步请求出错,但在浏览器控制台不显示错误信息的情况,我们可以采用以下方法解决:

打开 vendor/topthink/framework/src/think/App.php

搜索 debugModeInit

修改内容如下:

注释掉然后看看是否为
vendor/topthink/framework/src/think/response/Json.php 50行
json转换时候编码报错 
那么打开vendor/topthink/framework/src/think/exception/Handle.php

新加函数


    /**
     * 将获取的服务器信息中的中文编码转为utf-8
     * @access protected
     * @param $data array
     * @return array                 转化后的数组
     */
    protected function changeToUtf8(array $data): array
    {
        foreach ($data as $key => $value) {
            //mb_convert_encoding第一个参数只能接受array|string需要先转换否则float等类型会报错
            if (!is_array($value)&&!is_string($value)){
                $value = strval($value);
            }
            $data[$key] =  mb_convert_encoding($value, "UTF-8","ASCII,UTF-8,GBK");
        }
 
        return $data;
    }


然后搜索 convertExceptionToArray

修改内容如下:


至此,返回浏览器,刷新,就可以看到错误信息了。

以上是我总结的方法,你是否有更好的解决方法呢,欢迎评论留言。

上一篇:如何把uniapp项目打包为桌面应用

下一篇:PHP 和 HTML 是如何交互的?

回帖
  • 2023-09-01 09:04:46

    楼主 开源版 怎么搭建 啊 按照安装手册来的  phpstudy 解析到public了  config的database也改了  数据库也导入了 结果连后台都打不开

    0 回复
取消评论