使用jquery使用方法发布对象

时间:2015-04-09 01:44:34

标签: javascript jquery object post methods

我有一个简单的对象

function MyClass()
{
    this.id = null;
    // ... Lot of stuff in it
}
MyClass.prototype.parse = function(text)
{
    // A parsing function that fills the object
}

如果我尝试使用$.post

发送对象
$.post("target.php", { QUERY: "query_id", object: obj }, function(data){
    console.log(data);
}, 'json');

objMyClass的实例,我收到错误:text is undefined

如何理解我只想要发送数据,而不是像parse这样的方法,因为它不会产生任何感觉?

2 个答案:

答案 0 :(得分:2)

您可以通过执行

迭代对象的属性
for (var prop in obj)

将其与typeof结合使用以确定属性是否为函数,您可以创建一个函数以将所有非函数属性作为新对象返回。我把这个jsfiddle作为一个例子。

http://jsfiddle.net/6w0wj8hj/

这意味着你可以做

$.post("target.php", { QUERY: "query_id", object: obj.getProperties() }, function(data){
    console.log(data);
}, 'json');

答案 1 :(得分:1)

进行Ajax调用时,只能发送字符串。它会自动将数据转换为字符串,但如果不能,就像在您的情况下一样,它会引发错误。在这种情况下,不是发送obj,而是发送obj.data(字符串值)。