jQuery的ajax的post請求json格式無法上傳空數組


  問題描述:在和后端對接時,使用jquery的ajax的post方式向后端傳遞一序列約定好格式的對象數組。遇到了一個現象:如果對象中的數組是空數組,那么在請求參數中是不會出現的。

  以下是數據的對比:

 jQuery - ajax - post - 數據  接口請求參數中無法找到daily及daily_group
 

  有人會問:為啥要提交一個空數組上去呢?因為有時會有這樣的需求啊,比如說后端接口兼容等等。

  我遇到這個問題是:由於編輯時改了數據導致為空數組,保存時沒有傳遞相關數據;結果再次編輯時,數據還在。原因是后端沒有獲取到新的數據,就沒有更改數據。

  

  解決問題

  方法一:將請求的json對象格式化為字符串,就可以發送空數組了。但是缺點是,在看請求參數時是一堆字符串,不便於閱讀;並且后端php在接受數據后,還需要json_encode()格式化處理。

  

  方法二:前端不改,前后端約定,當獲取不到參數時,就將對應參數的值設置為空數組。個人認為這個可取。

  

  問題本質:為什么ajax post上傳之后,空數組會被過濾掉呢?原因就在於jquery的ajax方法中的這段代碼:

  以下是測試代碼:

  

   那么是不是可以:把ajax方法里面processData設置為false之后,再去序列化一下參數呢?

  

  然而實踐結果雖然能上傳過去,但是名稱卻變成了[object Object]

 

  

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM