有时候,我们用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
修改内容如下:
至此,返回浏览器,刷新,就可以看到错误信息了。
以上是我总结的方法,你是否有更好的解决方法呢,欢迎评论留言。