jQuery中是否有办法将$.ajax
从默认更改为序列化作为表单的已发送数据以将其序列化为JSON?
而不是以下内容:
$.post("/my/url/endpoint", JSON.stringify(obj))
我想做一次这样的事情,所以自动发生:
$.defaultSeralizer = JSON.stringify
从现在开始,我将能够:
$.post("/my/url/endpoint", obj)
答案 0 :(得分:1)
您可以将.toJson原型添加到将为您执行此操作的Object。它不会为你节省大量的打字,但取决于你的命名。
Object.prototype.toJson = function(){
var jsonValue = JSON.stringify(this);
alert(jsonValue);
}
var person = {"name": "John Smith", "age": 35, "location": "California"};
person.toJson();
答案 1 :(得分:1)
如果没有真正过度编写一些jQuery核心,就无法做到这一点,这将永远导致问题。最好的选择是为jQuery添加另一个ajax助手,它可以满足您的需求。
以下是https://stackoverflow.com/a/19516921/823942示例。
请记住,某些浏览器缺少本机JSON支持。