【发布时间】:2019-02-18 00:27:26
【问题描述】:
[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public static string getJsonString()
{
Person p = new Person();
p.name = "Alex";
p.address = "UK";
string jsonString;
jsonString = JsonConvert.SerializeObject(p);
return jsonString;
}
}
$("#clickme").on('click', function () {
$.ajax({
type:"GET",
url: "JsonPage.aspx/getJsonString",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (response) {
debugger;
$("#name").text(response.d.name);
$("#address").text(response.d.address);
},
error: function (jqXHR, exception) {
var msg = '';
if (jqXHR.status === 0) {
msg = 'Not connect.\n Verify Network.';
} else if (jqXHR.status == 404) {
msg = 'Requested page not found. [404]';
} else if (jqXHR.status == 500) {
msg = 'Internal Server Error [500].';
} else if (exception === 'parsererror') {
msg = 'Requested JSON parse failed.';
} else if (exception === 'timeout') {
msg = 'Time out error.';
} else if (exception === 'abort') {
msg = 'Ajax request aborted.';
} else {
msg = 'Uncaught Error.\n' + jqXHR.responseText;
}
alert(msg);
}
})
})
});
我正在尝试使用 jquery ajax 类型调用 webmethod:“GET”,第一个问题是方法中的断点没有命中。第二个在浏览器中我收到错误“requested json parse failed”。该怎么办请帮助...
【问题讨论】:
-
从您的请求中删除 contentType: "application/json; charset=utf-8",这仅在您向服务器发送一些数据(例如 POST)时才有用
-
需要解析ajax响应:
var person = JSON.parse(response.d) -
好的,我已经做出了这个改变。问题仍然存在。实际上解析是第二个问题。第一个问题是,webmethod 没有命中。我不知道为什么。
-
可以肯定的是,您的
clickme函数在$(document).ready(function () {中? -
是的,它在 jQuery 就绪函数中。
标签: jquery asp.net ajax webmethod