Javascript jquerypost,数据对象

Javascript jquerypost,数据对象,javascript,jquery,object,post,Javascript,Jquery,Object,Post,我试图理解一件事 我想用jquery Ajax post发布一个对象,如下所示: var dataPostYear = { viewType:GetViewType(), viewDate:'2009/09/08', languageId:GetLanguageId() }; $.ajax({ type: "POST", url: url, data: dataPostYear, contentType: "application/json;

我试图理解一件事

我想用jquery Ajax post发布一个对象,如下所示:

var dataPostYear = {
    viewType:GetViewType(),
    viewDate:'2009/09/08',
    languageId:GetLanguageId()
};


 $.ajax({
   type: "POST",
   url: url,
   data: dataPostYear,
   contentType: "application/json; charset=utf-8",
   dataType: "json",
   success: OnLoadYearListSuccess,
   error: OnLoadYearListError  
  });
但它不起作用

但这个很好用:

var dataPostYear = "{viewType:'"+ GetViewType() + "',viewDate:'2009/09/08',languageId:'"+GetLanguageId()+"}";

 $.ajax({
   type: "POST",
   url: url,
   data: dataPostYear,
   contentType: "application/json; charset=utf-8",
   dataType: "json",
   success: OnLoadYearListSuccess,
   error: OnLoadYearListError  
  });
GetViewType返回-“0” languageId返回-'1'

这只是一根绳子

有一种方法可以发布一个对象,我第一次尝试做什么?还是不

谢谢使用jQuery.param。这是你应该看的

本质上,您只需将json作为第四个参数添加到$.post

从网站:

// Send the request
$.post('script.php', data, function(response) {
// Do something with the request
}, 'json');

如果您想要.ajax调用版本,可以使用来转换它。

什么意思,它不工作?第一个版本可以正常工作,这就是数据参数的工作方式。错误是客户端还是服务器端?如何解码服务器端的数据?我假设第二种方法有效,因为它只是一个字符串。对于不匹配的单引号,没有双引号参数,它是非常无效的。第一个应该可以。你能发布GetViewType和GetLangaugeId方法吗?还有一些事情你没有告诉我们。这段代码应该正是您想要的:jQuery.param:创建数组或对象的序列化表示,适合在URL查询字符串或Ajax请求中使用。