2014-03-03 62 views
0

有沒有辦法在jQuery中將$.ajax從默認值更改爲序列化發送數據作爲表單序列化爲JSON?更改jQuery的默認串行器

取而代之的是以下內容:

$.post("/my/url/endpoint", JSON.stringify(obj)) 

我想這樣做一次,使自動發生:

$.defaultSeralizer = JSON.stringify 

從現在開始,我會能夠:

$.post("/my/url/endpoint", obj) 

回答

1

沒有辦法做到這一點沒有真正在寫一些jQuery的核心,而且總會引起的道路問題。最好的選擇是爲jQuery添加另一個Ajax助手,它可以完成你想要的任務。

這裏是一個例子https://stackoverflow.com/a/19516921/823942

請記住,某些瀏覽器缺少本機JSON支持。

+0

已經有JSON3拉進去了。不用擔心JSON支持......在IE8中慢#* @ $,但這就是它的方式......謝謝。 – Crisfole

1

您可以將.toJson原型添加到對象t帽子會爲你做。它不會爲你節省噸打字,但取決於你命名它。

Object.prototype.toJson = function(){ 
    var jsonValue = JSON.stringify(this); 
    alert(jsonValue); 
} 

var person = {"name": "John Smith", "age": 35, "location": "California"}; 

person.toJson(); 

Fiddle of it in action