我的Default.aspx页面中有以下PageMethod:
[WebMethod]
public static string Hello()
{
return "Hello";
}
这里我有一个div文本,我希望将其设置为通过AJAX返回的内容:
<div id="ajaxDiv"></div>
以下是我调用AJAX的两种方法。第一个是标准的AJAX调用:
function testAjax()
{
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function ()
{
if (xmlhttp.readyState == 4 && status == 200)
$('#ajaxDiv').text(xmlhttp.responseText);
}
xmlhttp.open("POST", "Default.aspx/Hello", true);
xmlhttp.send();
}
第二个是在JQuery的帮助下:
function testAjaxJQuery()
{
$.ajax(
{
type: "POST",
url:"Default.aspx/Hello",
data: "{}",
success: function (data)
{
$('#ajaxDiv').text(data);
}
}
)
}
我将一个按钮onclick事件绑定到这些函数,但是使用这两种方法我得到了Default.aspx页面的标记,而不是单词“Hello”。还有什么我需要做的。
答案 0 :(得分:3)
你应该使用data.d来获得响应:
$.ajax({
type: "POST",
url: "Default.aspx/Hello",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
$("#ajaxDiv").text(data.d);
}
});