axios使用x-www-form-urlencoded,POST表单PHP提示过时

发布于 2022-09-05 01:31:52 字数 733 浏览 18 评论 0

返回结果

Deprecated: 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 Unknown on line 0

1 如下的js会报过时

axios.post('/api/code/create', this.formItem)

2 如下的js不会报错

axios.post('/api/code/create', window.qs.stringify(this.formItem))

但是使用方法 2 的方式,this.formItem中的boolean数据会变成 "True" / "False"
导致存入数据库时 mysql 中字段类型为bool的字段无法将"True" 存为对应的 1 ,而始终是0

不想用修改php.ini这种方式,我使用的laravel5.2
获取数据的代码

Input::all();

该如何又避免报错,又能正确存储 ? 如果使用php://input 的方式,该如何修改?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

陌路黄昏 2022-09-12 01:31:52

不是 POST 表单过时。你是用的软件做的翻译吗?

Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version.

这句话的意思是 $HTTP_RAW_POST_DATA 常量过时了,并且会在下一个版本中移除。

但是这个版本还有,这是一个警告

后面给出了解决方案。

2 种:

  • 在 php.ini 配置文件种,把 always_populate_raw_post_data 设置为 -1

  • 不要使用 $HTTP_RAW_POST_DATA,而是使用 php://input 代替。

一花一树开 2022-09-12 01:31:52
//接受 post
$data = file_get_contens('php://input');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文