[英]Jquery ajax: object in data object
我需要在數據對象中傳遞一個對象,但是它不起作用
我使用在這個網站上發現的以下功能,非常有用,可以將表單數據轉換為JSON
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
然后我需要將該對象作為子對象傳遞,但是它不起作用。 過濾器甚至沒有顯示在檢查器的查詢字符串參數中
var filters = $('.filtersForm').serializeObject();
$.ajax({
type: 'GET',
data: {script:'search',page:page,filters:filters},
success: function(data){
}
});
查看圖片中如何缺少“過濾器”
有人可以解釋一下為什么我不能傳遞這樣的對象嗎?
嘗試以下方法:
$.ajax({
type: 'POST',
data: JSON.stringify({
script: 'search',
page: page,
filters: filters
}),
contentType: 'application/json'
});
GET
更改為POST
。 這將允許您發送請求正文。 application/json
。 這基本上表明request-body是這種類型的...這是因為我們只是將其字符串化為JSON。 嘗試指定您的filters
例如在try中: jsonfilter = JSON.stringify(filters);
如果您使用MVC和ASP.Net,則可以嘗試在HTTPWebMethode中使用jsonResult作為Return,可以嘗試指定參數
public JsonResult myPostMethode(string script,object page,List<object> filters){
//make some usefull
var model = script;
return(model,JsonRequestBehavior.AllowGet);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.