有人可以帮我弄清楚为什么当我用 $.ajax() 调用 Web 服务时它会返回预期的数据,而当我用 $.post() 调用相同的服务时,返回的数据是“未定义的”?
请注意,在使用 google 的工具(对于 .post() 调用)检查响应时,我可以看到从服务器发回的数据,但不知何故,它对 .post() 调用的 .done() 函数不可用。
程序完成没有错误。
这是整个代码:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test01</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$(document).ready(function () {
$("#btn01").click(function () {
//.ajax type call
$.ajax({
type: "POST",
url: "WebService1.asmx/GetData",
data: "{KenID:'11'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data)
{
$("#div01").html(data.d);
}
});
});
$("#btn02").click(function () {
// .post() type call
$.post("WebService1.asmx/GetData", { KenID: "11" })
.done(function (data, status)
{
$("#div01").html("Data: " + data.d + "</br>Status: " + status);
})
.fail(function () { alert("error"); })
.always(function () { alert("completed"); });
});
});
</script>
</head>
<body>
<div id="div01">Here comes the result</div>
<button id="btn01">Load Data with $.ajax : </button>
<button id="btn02">Load Data with $.post : </button>
<input id="KenID" value="11" />
</body>
</html>
谢谢,
亚采克