頂部導航開始 -->

ajax傳值報錯之php5.5、5.6關于ajax的傳值要求

在工作中,使用ajax的時候,出現了一種莫名其妙的情況。兩臺服務器都是正常運行的,但是在使用ajax的時候,發現在其中一臺服務器運行完全沒有問題的代碼,遷移到另外一臺服務器的時候,無法正常工作,經過不停地調試,不停的修改服務器配置文件,最后發現是因為php的版本不同,具體情況請看下文。

事情的起因是用一臺服務器作為測試服務器,其配置為php5.5,使用ajax進行異步操作,在本測試服務器上,整個工作流程都沒有問題。可以正常的傳值,及返回數據處理結果。

但是將測試服務器內容遷移到工作服務器的時候,發現ajax無法將值傳遞到服務器,并且報出錯誤:

報錯內容如下:

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


實際工作中,報錯內容截圖如下:


自學php博客


出現上述報錯之后,經過對比發現,是在使用ajax的時候,ajax的post方式傳遞的data的值為空,因為該操作不需傳值,所以沒有賦值,導致data傳遞了空值,該情況在php5.5的時候,ajax傳遞空值是沒有問題的,但是php5.6的時候,會報出錯誤。

總結:在使用ajax的時候盡量不要傳遞空值,否則在使用的過程中,如果項目環境升級就可能導致這種莫名其妙的錯誤,如果確實沒有需要操作的值進行傳遞的話,可以隨便進行設置,如data='id=1';這樣傳遞一個沒有意義的值也是可以的。

自學php博客
請先登陸后發表評論
  • 最新評論
  • 總共0條評論
  • ? 2014-2016 zixuephp.cn 版權所有
  • ICP證:皖ICP備16012107號
  • 聯系郵箱:[email protected]
  • 交流請加微信:weibobf2899 或掃下方二維碼
双大床红利扑克1手APP