我按照教程找到的Here对标题中的内容有基本的了解。到目前为止,我得出的结论是$.getJSON
根本无法正常工作。
我已经将代码枯萎了:
<script type="text/javascript">
$(document).ready(function () {
var usernameUnavailableRow = $('#usernameUnavailableRow');
var availabilityMessage = $('#availabilityMessage');
$("#UserName").hover(function () {
//usernameUnavailableRow.hide();
});
$("#UserName").blur(function () {
$.getJSON('/OCDB/UsernameAvailable.aspx?' + escape($(this).val()), function (results) {
if (results.available) {
alert("available"); //Just checking if anything even returns
} else {
alert("not available"); //Just checking if anything even returns
}
});
});
});
</script>
<table>
<tr>
<td>
<input id="UserName"></input>
</td>
</tr>
<tr id="usernameUnavailableRow">
<td>
<span id="availabilityMessage">k</span>
</td>
</tr>
</table>
我的
UsernameAvailable.aspx
页面正好显示了这一点:{ "available" : "false"}
使用时
<%@ Page Language="C#" CodeFile="UsernameAvailable.aspx.cs" Inherits="UsernameAvailable" ContentType="application/json" %>
在
getJson
事件中什么也没有发生。谁能告诉我我要去哪里错了,因为我看不到自己的错误。
编辑
更改代码以消除Javascript产生的404错误后(感谢@Archer),结果现在始终返回
True
。我已经检查过页面是否在使用的用户名上返回False
,并且可以正常工作。 最佳答案
您在该链接上忽略了这一行:
UsernameAvailable.aspx页期望所需的用户名是
在querystring中提供,如下所示:
UsernameAvailable.aspx?desiredUsername。
您需要这样做:
$.getJSON('UsernameAvailable.aspx?' + escape($(this).val()), function (results){
if (results.available) {
// available
}
else{
// unavailable
}
});