当前位置: 首页 > 知识库问答 >
问题:

php框架 - 阿里云OSS服务端签名前端JS直传 回调出错 Response body is not valid json format?

瞿子濯
2023-05-24

经过排查我怀疑是php输出的结果字符编码 和 java接收的字符编码出问题了。
我的服务器编码自带的charset=utf-8
不知道java 接收php接口数据时php需求做什么编码处理。
function ossCallback(){

    header("Content-Type: application/json;;charset=utf-8");
    $data = array("Status"=>"Ok");
    return json_encode($data);
}

这个代码输出的数据,我用自己的电脑mac 抓包,数据是没有问题的.
用windows抓包的时候 就出现乱码了。

共有2个答案

孟永望
2023-05-24
function ossCallback(){
    $data = array("Status"=>"Ok");
    return json(['data' => $data])->contentType("application/json;charset=utf-8");
}
王旺
2023-05-24
Response body is not valid json format

提示 Json 格式不正确,确认 PHP 输出的是 json 字符串。

PHP 将数据转 json 表示:json_encode()


同时 PHP 在输出时设置响应头:

header('Content-type:application/json;charset=utf-8');

// ....


$data = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
return json_encode($data, JSON_UNESCAPED_UNICODE);

// 或者 return echo 任选一个。
echo json_encode($data, JSON_UNESCAPED_UNICODE);
JSON 常量页面

更新:使用 TP5

TP5 框架已经封装好了 json() 方法了。

在控制器里面这样:

    public function ossCallback()
    {
        $data = array("Status" => "Ok");
        return json($data);
    }
 类似资料:
  • 请问阿里云中这个Secret是如何获得的? https://help.aliyun.com/zh/sdk/product-overview/v3-request-st...

  • 面试官水平非常高,看得出对技术有很高的追求和热爱,问的问题基本不在八股文范围内,而是会在其基础上进行延展,很多原理性的东西我都没有了解过,所以也没怎么答出来。后半程全程聊天,也有在输出他的一些建议,虽说大概率凉凉,但算是一次非常有效的面试,收获很大

  • 09/14 一面 自我介绍,前端经历 长列表渲染优化,异步加载节点信息。元素不定高场景下怎么做虚拟列表。 性能优化的指标。 XSS注入和SQL注入排查修复。 微前端技术,qiankun框架,spa和mpa,js隔离、样式隔离。 通用上传组件,中间件机制洋葱模型。 低代码平台优势劣势。(问了低代码协议相关,没看过) 进程线程协程概念及区别。线程共享进程中哪些资源。 如何写一个死锁。 ES6新增特性,

  • 主打聊天向 自我介绍 前端学习路线 前端框架学习路线 实习详问 时针和分针夹角 智力题 对于部门业务了解情况 感兴趣吗 为啥 如果给你发offer你会来吗 开泡! #前端#

  • 复盘笔试题 list2tree函数,我们实际用的pid是哈希值,不能用sort去解决,那么你的算法该怎么改 时间复杂度 空间复杂度是多少 你提到说你有学react源码,那么你深入学习了哪个(react16 18 fiber diff ) 详细说一下diff源码 那么为什么要用diff diff是怎么优化的(又扯到memo可以性能优化) css的作用域 less的作用域(扯到css in modul

  • 本文向大家介绍php版阿里云OSS图片上传类详解,包括了php版阿里云OSS图片上传类详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php版阿里云OSS图片上传类。分享给大家供大家参考,具体如下: 1.阿里云基本函数 2.基本配置与辅助函数 3.主函数 4.核心处理函数 5.辅助函数 总结:与普通上传的区别在于,它是全部通过阿里云的oss接口来处理文件保存的。普通上传是把本地文件移动