javascript - axios使用x-www-form-urlencoded,POST表單PHP提示過時
过去多啦不再A梦
过去多啦不再A梦 2017-06-14 10:49:57
0
2
1027

傳回結果

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 . 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 的方式,該如何修改?

#
过去多啦不再A梦
过去多啦不再A梦

全部回覆(2)
洪涛

不是 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 代替。

typecho

雷雷

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!