有人可以帮忙吗?我有一个从jquery调用asp.net webservice的问题..实际上我认为它可能是jquery ...因为我有一个断点而且它没有到达web服务..
这是我的jquery,webservice方法接受2个参数......
所以我设置了一个简单的测试来传递7和7 ..我尝试用“测试”一词替换它也不起作用..
基本上在错误功能中显示“抱歉发生错误”,但错误未定义。
jQuery.ajax({
type: 'POST'
, url: 'CallService.asmx/TempCanMakeCall'
, contentType: 'application/json; charset=utf-8'
, dataType: "json"
, data: "{'reservationNum':'7','completedReservationNum':'7'}"
, success: function(data, status) {
alert(data);
}
, error: function(xmlHttpRequest, status, err) {
alert('Sorry! Error happens.' + err);
}
}
);
这是asp.net webservice
[WebMethod()]
public bool TempCanMakeCall(string reservationNum, string completedReservationNum )
{
return true;
}
答案 0 :(得分:2)
xmlHttpRequest.responseText在处理jQuery AJAX错误时一直是我的转到。
尝试将ASP.NET函数设为静态:
[WebMethod()]
public static bool TempCanMakeCall(string reservationNum, string completedReservationNum )
{
return true;
}
另请注意,返回的JSON值封装在名为“d”的对象中(特定于ASP.NET。)要在成功时显示返回值,您需要执行以下操作:
success: function(data, status) {
alert(data.d);
}
答案 1 :(得分:1)
jquery ajax调用看起来很好。我认为你需要确保“CallService.asmx”的路径是正确的。现在的方式,只有在进行jQuery调用的文件与ASMX位于同一个虚拟目录中时,我才会工作。
答案 2 :(得分:0)
在错误回调函数中,您可以检查'xmlHttpRequest.status'以获取从服务器返回的http代码。这可能会给你另一个线索。如果上面的ichiban是正确的,它应该是404。
答案 3 :(得分:0)
您可以查看xmlHttpRequest.responseText
属性。响应文本很可能是服务器返回的包含错误原因的html文档。
如果您使用的是Visual Studio,还可以在Internet Explorer中启用脚本调试,并在错误函数中添加以下关键字:debugger
。浏览器将此视为断点,并将调用调试器(应为Visual Studio)。现在,您可以检查xmlHttpRequest
实例的全部内容。
为清楚起见,您的错误功能将如下所示:
function(xmlHttpRequest, status, err)
{
debugger;
...rest of your function...
}