我在newboston youtube频道上开始了phpAcademy制作的jQuery教程。
我到达了必须创建电子邮件验证表单BUT的部分,我没有使用PHP,在本教程中使用的是ASP.net。

所以,事情是,即使我按照本教程中的说明进行了所有操作,也无法使用$ .post将任何变量发送到.aspx页,并且当我想从.aspx页检索变量时,它会检索我整个源代码。

主页的源代码:

<input type="text" id="email" /> <span id="emailfeed"></span>


带有jQuery代码的Javascript文件:

function validate_email(email) {
        $.post('email.aspx', { email: email }, function (data) {
            $('#emailfeed').text(data);

        });
    }

    $('#email').focusin(function () {
        if ($('#email').val() === '') {
            $('#emailfeed').text('Enter your email here');
        } else {
            validate_email($('#email').val());
        }
    }).blur(function () {
        $('#emailfeed').text('');
    }).keyup(function () {
        validate_email($('#email').val());
    });


email.aspx.cs代码:

protected void Page_Load(object sender, EventArgs e)
    {
        if (Page.IsPostBack)
        {

        string email = Request.Form["email"];
        emailLabel.Text = email;// HTTP Post
        }
    }


该代码的作用是将我在该字段中键入的所有内容发送到email.aspx,然后检索到达email.aspx的内容并将其显示在span标记“ emailfeed”中。
因此,基本上,我在电子邮件字段中编写的内容应该显示在span标记之间...但这不会发生,相反,我得到了:

<!DOCTYPE html>

 <html xmlns="http://www.w3.org/1999/xhtml">
 <head><title>

 </title></head>
 <body>
 <form method="post" action="email.aspx" id="form1">
 <div class="aspNetHidden">
 <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="6/oBNs2tFeYkrpkFpDL724BXcQwQ8axaBMe/+VEr/27lNqbjE1FyzyK6Zrl2TCcvjgfkv01vyV3PXehcal8bJZdEfpf4v5KkxQTelnzKhlM=" />
 </div>

 <div>
 <span id="emailLabel"></span>
 </div>
 </form>
 </body>
 </html>


因此,基本上这是在两者之间显示的email.aspx的源代码,而不是我实际输入的内容。

我该如何解决呢?

最佳答案

在页面源的显示之前,我已经看到过这种奇怪的行为。我似乎还记得这是由于ajax调用返回了一个混淆ASP.NET框架的contentType。尝试将dataType$.post设置为html

07-24 17:21
查看更多