$ .ajax和webmethod / pagemethods

时间:2009-09-22 09:10:33

标签: asp.net jquery ajax

我正在尝试调用一个没有任何参数的页面方法,而且我似乎无法让它工作。

如果我在pagemethod中有一个参数,它可以正常工作。

$.ajax({
  type: "POST",
  url: "Default.aspx/getLastCallData",
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function(msg) {
    alert(msg.d);
  },
  error: function(XMLHttpRequest, textStatus, errorThrown) {
    alert('Couldnt get call data');
  }
});

任何想法。

2 个答案:

答案 0 :(得分:3)

由于您没有传递任何数据,您仍应添加data参数并传递空的JSON对象。

通过发送一个空的JSON对象,jQuery将正确发送您在$ .ajax调用中定义的contentType。这是一个奇怪的怪癖,jQuery还没有真正解释过。

添加以下参数:

data: "{}"

所以你的电话应该是这样的:

$.ajax({
  type: "POST",
  url: "Default.aspx/getLastCallData",
  data: "{}",
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function(msg) {
    alert(msg.d);
  },
  error: function(XMLHttpRequest, textStatus, errorThrown) {
    alert('Couldnt get call data');
  }
});

答案 1 :(得分:0)

您是否尝试为POST切换GET?不知道这是否有任何区别,但由于你没有发送任何数据,你实际上并没有发布任何数据,你只是获取数据......可能是奇怪的事情。