jquery ajax数据对象:调用函数

时间:2014-06-24 19:47:27

标签: javascript jquery ajax

考虑这个对象:

function Cow() {
var self = this;

self.color = "blue";
self.weight=55;
}

Cow.prototype.Speak = function(){
 var self=this;
 alert('moo. i\'m a ' + self.color + ' cow.');
}

var bessy = new Cow();

当我尝试执行$ .ajax(...)并传入'bessy'作为数据参数时,我遇到了一个问题。我的目的是将数据属性序列化并通过线路传递但它实际上会在ajax调用时执行Speak()。这是一个非常简单的例子,但突出了我遇到的问题。

为了解决这个问题,我创建了一个接受对象并有条件地删除成员(如函数)的函数。然后我将目标对象的副本传递给该函数,并使用我对象的新简化副本进行ajax调用。这看起来真的很麻烦。这是个常见的问题吗?别人怎么处理这个?为此目的创建单独的DTO JS对象似乎有些过分,因为当我添加新属性时,需要在两个地方添加它。

会感激任何想法。

...谢谢 -ben

1 个答案:

答案 0 :(得分:4)

您可以通过轻松将对象转换为json字符串来实现。 JSON.stringify(bessy)会让你拥有bessy变量的json字符串。 将其发送到服务器并使用json_decode再次转换为对象。