jquery ajax调用从数据库检查数据总是返回错误 - .NET

时间:2014-03-21 13:22:51

标签: jquery ajax asp.net-ajax

我正在开发一种功能,用户可以检查数据库中是否已存在电子邮件(在注册页面上)。

基本上出于测试目的,我手动在数据库中添加了一个电子邮件地址为“test@yopmail.com”的用户。

我试图通过ajax查看此电子邮件是否存在。以下是我正在使用的代码:

    [WebMethod(MessageName = "CheckEmailAvailability", Description = "Check whether an Email is available.")]
    public string CheckEmailAvailability(string email)
    {
        var checkEmailAvailabilityResult = string.Empty;

        try
        {
            var membershipUser = Membership.GetUserNameByEmail(email);

            if (!string.IsNullOrWhiteSpace(membershipUser))
            {
                checkEmailAvailabilityResult = "EMAIL_ALREADY_EXIST";
            }
            else
            {
                checkEmailAvailabilityResult = "EMAIL_NOT_EXIST";
            }
        }
        catch (Exception ex)
        {
            checkEmailAvailabilityResult = "UNEXPECTED_ERROR";
        }

        return checkEmailAvailabilityResult;
    }

    #endregion

我的ajax是:

  $('#test_json').click(function(){

  $.ajax({
    type: "POST",
    url: "http://locahost/WebServices/Email_Availability/Email_Availability_V1_1.asmx/CheckEmailAvailability",
    data: { email: JSON.stringify('test@yopmail.com')},
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(data){

        alert('data');

    },
     error: function(data){ alert('Test'+data); }
  });
 });

警告以下内容:测试[对象]

我做错了什么?请帮忙

2 个答案:

答案 0 :(得分:0)

您不需要对字符串值使用JSON.stringify。

data: { email: JSON.stringify('test@yopmail.com')},

将其更改为

data: { email: 'test@yopmail.com'},

要正确打印出错误中发生的情况,您需要更改错误功能的参数。你的第一个参数是xhr对象,你可能想检查第二个和第三个参数以查看失败的原因。

  

类型:函数(jqXHR jqXHR,String textStatus,String errorThrown)

来自jQuery文档:https://api.jquery.com/jQuery.ajax/

答案 1 :(得分:0)

修复拼写错误的本地主机,不要将StringObject连接起来:

 $('#test_json').click(function(){

  $.ajax({
    type: "POST",
    url: "http://localhost/WebServices/Email_Availability/Email_Availability_V1_1.asmx/CheckEmailAvailability",
    data: { email: JSON.stringify('test@yopmail.com')},
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(data){

        alert('data');

    },
     error: function(data){ alert(data); }
  });
 });