我正在开发一种功能,用户可以检查数据库中是否已存在电子邮件(在注册页面上)。
基本上出于测试目的,我手动在数据库中添加了一个电子邮件地址为“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); }
});
});
警告以下内容:测试[对象]
我做错了什么?请帮忙
答案 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)
修复拼写错误的本地主机,不要将String
与Object
连接起来:
$('#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); }
});
});