在開發中有時可能傳遞一批類似結構的資料到後台處理,但是ajax又不能像後台語言那樣直接傳乙個array物件過去,那怎麼辦呢?
這個時候有個變通的方法,就是在前端將物件放到陣列裡面,然後序列化後傳遞到後台,在後台接受到資料後在反序列化回來即可,下面是乙個例子。
1.前端處理
var peoples = ; //定義乙個名為peoples的陣列
for (var i = 0; i < 4; i++) ;
people.name = "name" + i.tostring();
people.age = 20 + i;
peoples[i] = people;
}var data = {};
data.peoples = peoples;//注意這裡data的[peoples]屬性需要與後台用於反序列化裡的物件名一致
$.ajax(, //將物件序列化為字串
datatype: "xml",//這裡為啥要設定xml呢?看下面
success: function (data) ,
error: function (e, r, t) ,
complete: function ()
});
2.後端處理
/// /// 單個人
///
public class people
public int age
}/// /// 一組人
///
public class peoples
}/// /// webservice1 的摘要說明
///
[webservice(namespace = "")]
[webservicebinding(conformsto = wsiprofiles.basicprofile1_1)]
[system.componentmodel.toolboxitem(false)]
// 若要允許使用 asp.net ajax 從指令碼中呼叫此 web 服務,請取消對下行的注釋。
[system.web.script.services.scriptservice]
public class webservice1 : system.web.services.webservice";}
}
3.如何檢視ajax呼叫後返回的資訊呢?
前台傳送 ajax 請求到後台傳遞陣列引數
web專案開發中,我們經常會遇到需要向後台傳遞乙個陣列的情況,主要有兩種形式,一種是傳遞簡單的字元陣列,另一種就是傳遞乙個物件陣列,以下是針對這兩種情況的處理方式。傳遞字元陣列 jquery.ajax向後台傳遞乙個字元陣列,需要設定 traditional true,後台用 string arr 就...
js傳遞陣列到後台
post方法不得行,各種問題.改為ajax就闊以了.預設的話,traditional為false,即jquery會深度序列化引數物件,以適應如php和ruby on rails框架,但servelt api無法處理,我們可以通過設定traditional 為true阻止深度序列化,var condi...
ajax傳遞給後台陣列引數方式
出自 在專案上用到了批量刪除與批量更改狀態,前台使用了easyui的datagrid,用到了批量更改資料狀態功能。在前台可以獲取每條資料的id,但是如何通過陣列方式傳遞給後台?通過昨晚的各種方式的除錯,終於得出了答案!在此作為備忘。目前有兩種方式可行 方式一前台 方式一 var list for v...