POST請求中參數以form data和request payload形式+清空數組方式


  1. 測試與服務端ajax時用的dva封裝的request方法,而后端怎么也拿不到參數。結果返現參數在request payload里。

HTTP POST表單請求提交時:Content-Typeapplication/x-www-form-urlencoded,而使用原生AJAX的POST請求如果不指定請求頭RequestHeader,默認使用的Content-Type是text/plain;charset=UTF-8。

表單提交數據是名值對的方式,而文件上傳服務器需要特殊處理,普通的post請求數據格式不固定,不一定是名值對的方式,所以服務器無法知道具體的處理方式,所以只能通過獲取原始數據流的方式來進行解析。jquery在執行post請求時,會設置Content-Type為application/x-www-form-urlencoded,所以服務器能夠正確解析,而使用原生ajax請求時,如果不顯示的設置Content-Type,那么默認是text/plain,這時不能用request.getParameter(name)的形式獲取,所以才只能通過獲取原始數據流的方式來進行解析請求數據。

      2.清空數組

  • 方式1,splice

var ary = [1,2,3,4]; ary.splice(0,ary.length); console.log(ary); // 輸出 Array[0],空數組,即被清空了

  • 方式2,length賦值為0。

這種方式很有意思,其它語言如Java,其數組的length是只讀的,不能被賦值。如int[] ary = {1,2,3,4}; ary.length = 0;Java中會報錯,編譯通不過。而JS中則可以,且將數組清空了。var ary = [1,2,3,4]; ary.length = 0; console.log(ary);// 輸出 [],空數組,即被清空了目前 Prototype中數組的 clear 和mootools庫中數組的 empty 使用這種方式清空數組。

  • 方式3,賦值為[]

var ary = [1,2,3,4]; ary = [];


免責聲明!

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



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