python -- ajax數組傳遞和后台接收


phper轉pythoner

在當初使用php做網站開發的時候,前端ajax傳遞數據的時候,就是直接將一個數組傳遞過去,后台用$_POST['key']接收即可,沒有考慮那么細,想來這不都是理所當然的么,直到最近用python開發網站的時候,才發現沒那么簡單。

 

一個二維數組,查看參數傳遞,如下:

traditional:false //默認為false,不使用傳統方式來序列化,即會深度序列化參數對象

在python后端,使用request.POST.getlist('goods_size')來獲取參數,發現獲取到的是一個空列表,分析原因得知,因為深度序列化了,鍵不再是“goods_size”了,而分別是“goods_size[0][goods_id]、goods_size[0][standardsize_id]、等等”,python后端通過“goods_size”作為鍵名來獲取值,肯定是獲取不到的!

traditional:true //使用傳統方式來序列化,不深度序列化參數對象

在python后端,使用request.POST.getlist('goods_size')來獲取參數,發現獲取到的是一個列表,確實取到列表數據了,但其內容分別是兩個“[object Object]”這個字符串,后台也無法做任何處理(可能我技術不夠,暫時找不到處理方法)。

 


 

苦苦搜尋,終於找到解決方案,如下:

1、先在前端將要傳入的數組進行json格式化(后端為php的時候好像不需要),'goods_size' : JSON.stringify(goods_size),http消息體中傳遞的數據如下:

2、深度序列化與否貌似關系不大

3、在后台通過request.POST.get('goods_size'),獲取到一個列表字符串,如下:

 

4、通過一些轉換,將接收到的數據轉換成想要的格式


免責聲明!

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



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