$ .ajax和webmethod / pagemethods

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

如果我在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'); } }); 

有任何想法吗。

由于您未传递任何数据,因此仍应添加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'); } }); 

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