搜尋

首頁  >  問答  >  主體

javascript - axios使用x-www-form-urlencoded,POST表單PHP提示過時

傳回結果

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梦2709 天前1060

全部回覆(2)我來回復

  • PHP中文网

    PHP中文网2017-06-14 10:51:57

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

    回覆
    0
  • typecho

    typecho2017-06-14 10:51:57

    雷雷

    回覆
    0
  • 取消回覆