我在ASP.NET中创建了一个Webmethod,并尝试通过jQuery AJAX访问它。当我通过浏览器调用Webmethod时,它会给出一个JSON结果,但是当我通过jQuery AJAX调用它时,它在Firefox的Firebug中给出了“ 204 no content ”。 (我的webmethod在一个域中,jQuery AJAX代码在其他域中。)
JQuery Ajax代码:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "http://localhost:1177/api/authentication/getusermenu?roleid=1",
processData: true,
dataType: "jsonp",
success: function (msg) {
alert(msg.d);
},
error: function (jqXHR, textStatus, errorThrown) {
var data = $.parseJSON(jqXHR.responseText);
alert(data);
}
});
Firebug输出:
答案 0 :(得分:0)
尝试以下方法: 1.如果webmethod在同一个应用程序中,那么不需要提供localhost或任何东西。如果在任何其他机器上的web方法并且它是可访问的,那么提供 url:“http:/// ...”而不是localhost:portNo。 2. dataType:“json”,
完整示例如下:
$.ajax({
type: "POST",
url: "ABC.aspx/GetUserMenu?roleid=1",
data: {},
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert(msg.d);
},
error: function (jqXHR, textStatus, errorThrown) {
var data = $.parseJSON(jqXHR.responseText);
alert(data);
}
});