ThinkPHP5.1的环境要求如下:

  • PHP >= 5.6.0
  • PDO PHP Extension
  • MBstring PHP Extension

最近下载了tp 5.1.19来玩,造轮子难免会遇到坑。

今天又遇到js报错:SyntaxError: Unexpected token < in JSON at position 0。根据网上的说法“json格式问题”,各种json_encode()、var_dump()检查json格式,却不能解决问题。

后面在调试信息中,无意发现以下信息:

<br />
<b>Deprecated</b>:  Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in <b>Unknown</b> on line <b>0</b><br />
<br />
<b>Warning</b>:  Cannot modify header information - headers already sent in <b>Unknown</b> on line <b>0</b><br />
"{\"code\":0,\"msg\":\"\\u83b7\\u53d6\\u6210\\u529f\\uff01\"}"

通过上网查询Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be remov得知关于【在高版本 php 的发版说明中都有 $HTTP_RAW_POST_DATA 即将(已经)取消,请改用从 php://input 中读取 的声明】,找到对应的解决方法

打开php.ini配置文件,找到以下代码

blob.png

1

;always_populate_raw_post_data = -1

改成

1

always_populate_raw_post_data = -1

最后重启环境即可。

备注:有部分大佬表示$HTTP_RAW_POST_DATA 已经废弃了,所以应该使用file_get_contents('php://input');来获取。由于上面方法已经解决我的问题,所以并没有测试这种方法。在这里发出来,仅供大家参考。

GitHub 加速计划 / js / json
49
5
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:6 个月前 )
51a77f1d 7 小时前
756ca22e 7 小时前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐