我按照教程找到的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
    }
});

10-08 10:49