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]
?
?
?
?
?
轉載于:https://www.cnblogs.com/EnSnail/p/7985954.html
總結
以上是生活随笔為你收集整理的jQuery的ajax的post请求json格式无法上传空数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Html和CSS的关系
- 下一篇: CISP/CISA 每日一题 11