我正在使用http://www.joe-stevens.com/2010/01/04/using-jquery-to-make-ajax-calls-to-an-asmx-web-service-using-asp-net/中的代码
function callWebService(address) {
var result;
$("#result").addClass("loading");
$.ajax({
type: "POST",
url: address,
data: "{}",contentType: "application/json; charset=utf-8",
dataType: "json",
success: Success,
error: Error
});
}
function Success(data, status) {
$("#result").removeClass("loading");
$("#result").html(data.d);
alert("Success");
}
function Error(request, status, error) {
$("#result").removeClass("loading");
$("#result").html(request.statusText);
alert("Error");
}
我不明白这段代码出了什么问题。它总是返回"Error“
发布于 2010-07-24 00:56:30
还要确保您尝试访问的服务URL与您的站点在同一个域中。如果跨域,AJAX调用将不会成功,因为浏览器会将AJAX调用提交给same domain policy。您还可以包括您尝试访问的URL吗?
如果您正在尝试访问不同域中的资源,则可能需要考虑使用JSONP请求。有关如何使用jQuery AJAX documentation的讨论,请参阅JSONP。
我认为如果你知道你想要访问的URL,再加上Justin和mohlsen的建议,我想我们可以提供帮助。
发布于 2010-07-23 23:48:37
乍一看,您的代码看起来很好。
我建议您使用FireBug进一步隔离问题,因为它可以让您看到实际的HTTP请求、POSTed数据等……
发布于 2010-07-24 00:09:43
基于我做这件事的一些代码,我有一些建议。但正如其他人所说,请确保手动查看数据传出和传回。您的链接引用了asp.net webservice,这就是您调用的内容,因为您没有提到它。
请确保“
中的成功方法所需的格式
success: function(msg) {
//msg is a json object, .d is the data field returned by asp.net
if (msg.d.length > 0)
ProcessData(msg.d);
else
HandleError('No data was returned.');
},
error: function() {
HandleError('There was a problem calling the webservice.');
}
https://stackoverflow.com/questions/3319813
复制相似问题