有时候,我们用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
修改内容如下:

至此,返回浏览器,刷新,就可以看到错误信息了。
以上是我总结的方法,你是否有更好的解决方法呢,欢迎评论留言。