• thinkphp5 返回json数据的方法---以及返回json为空的原因


    thinkphp5 返回json数据为空的解决方法

    1、用SoapUI来测试借口,Content-Type不是json,而是text/html;
    2、自己的接口,最后的数据用了json_encode,也是不管用的;
    3、用header来设置Content-Type也没有效果;
    4、而改框架的配置default_return_type 为json,这也是不可取的,整站是网站需要返回的还是text/html;

    综上情况,没有识破原理层面的问题根源,但是找到了一个解决办法:
    在你这个接口方法里面的第一行单独写上以下这句:

    Config::set('default_return_type', 'json');
    这样这个配置适用于这个方法,不会影响其他方法,而且返回的数据Content-Type是json 的。

    返回json好像有三种方法

    1.使用原生的php语句

    echo json_encode()
    

    2.有一些是这样说的,使用ajaxReturn函数返回

    $arr['name']=$picname;
    
    $arr['pic']=$pics;
    
    $arr['size']=$size;
    
    $this->ajaxReturn ($arr,'JSON');
    

    3.有的说tp返回的时候,使用json函数

    echo  json(XXXX)
    

    到底应该使用哪个呢?

    三者的区别

    1.json()函数,和halt函数,dump函数,jsonp函数一样,都是助手函数,可以使用。
    但是真正使用的时候,报出这种错误

    Object of class think
    esponseJson could not be converted to string
    

    可能是这种错误

    后来发现是UTF-8的BOM头问题
    

    搞的很费劲,还是用原生的写法吧
    2.json_encode是原生的php,更容易上手。
    3.ajaxReturn,这个就不明白了,好像用起来挺费劲

  • 相关阅读:
    我的周记17——“世界再美,也美不过我一日三餐,心情再坏,也坏不过我没心没肺”
    【测试-移动端】 聊聊手机端的测试
    Java基础篇---多线程
    BIO和NIO实现文件复制
    IO操作-BIO
    js数组去重
    js json对象操作
    23种设计模式,每天一种设计模式(2)
    23种设计模式,每天一种设计模式
    .net画二叉树
  • 原文地址:https://www.cnblogs.com/cn-oldboy/p/13262184.html
Copyright © 2020-2023  润新知