Thinkphp自定义Response页面Content-Type常见的两种方式有:header(‘Content-Type:text/json;charset=utf-8’)和Config::set(‘default_return_type’,’json’)。但是经过踩坑测试这两种方式各有特殊的应用方式。
环境:PHP:7.3.28,Thinkphp:5.0.24
测试代码:
public function index()
{
//Config::set('default_return_type','json');
// header('Content-Type:application/json;charset=utf-8');
header('Content-Type:text/json;charset=utf-8');
//header('Content-Type:text/javascript;charset=utf-8');
$json = [['data'=>['PHP'=>phpversion(),'Thinkphp'=>THINK_VERSION,6,'时/间'=>time(),'D'],'B']];
$rejson=json_encode($json,JSON_UNESCAPED_UNICODE);//中文不转为unicode,对应的数字256
//exit ($rejson);
exit($rejson);
}
header(‘Content-Type:text/json;charset=utf-8’)
在Thinkphp中使用和原生php一样利用header(‘Content-Type:text/json;charset=utf-8’)来自定义Response页面Content-Type的时候,支持‘application/json’,支持‘text/json’,支持‘text/javascript’,
但是只有使用exit返回时自定义的Content-Type才会生效,使用return返回时自定义Content-Type不生效(此时生效的是Thinkphp框架中Config的default_return_type设置,默认为html即‘text/html’)。
Config::set(‘default_return_type’,’json’)
自定义Response页面Content-Type的时候,thinkphp默认只支持‘application/json’,不支持‘text/json’,但是必须要用return返回。
如需帮助请联系客服
原创文章,作者:阳光,如若转载,请注明出处:https://www.waoyou.com/411.html