1. 程式人生 > >$.ajax()之data詳解

$.ajax()之data詳解

最近在做專案的時候,用到$.ajax()進行資料互動,然後遇到一個問題,data引數中包含一個提前定義的陣列(var array=[];)這個陣列可能為空,只有符合某條件才會向其中插入元素。然後後臺接受資料的時候,會去獲取array這個引數,但是當array為空的時候,後臺無法獲取array引數而報錯。於是,我去瀏覽器中產看HTTP請求,發現的確沒有將空的array引數傳過去。如下:

 	data:{
           fapiaoxmsz:JSON.stringify(allRow), //allRow是一個數組
           a:array //array目前是一個空陣列
         },

在這裡插入圖片描述 在這裡,並沒有將a引數傳送過去,即使它是一個空陣列,我們預期的應該要傳送一個array=[] 然後,再去認真看了$.ajax()的文件後發現,data的引數型別要求為Object或String型別的引數,傳送到伺服器的資料,如果不是字串,將自動轉換為字串格式,然而空陣列被轉換成字串之後,data預設就把這個引數丟棄了,所以該引數無法傳到後臺。但是後臺預期得到一個array引數,即使array=[],要想這樣實現,則應該把JSON.stringify()派上用場,JSON.stringify()和JSON.parse()是一對作為前後臺數據傳輸的資料格式轉換強大的函式,具體用法參照博文 https://blog.csdn.net/IT_10/article/details/82181163

現在重新傳輸

	data:{
	      	 fapiaoxmsz:JSON.stringify(allRow), //allRow是一個數組
	         a:JSON.stringify(array) //array目前是一個空陣列
       },

在這裡插入圖片描述 這樣就OK啦!!!