用于检查数据库数据的jquery ajax调用总是返回一个错误-.NET
我正在开发一项功能,用户可以通过该功能检查数据库(注册页面)中是否已经存在电子邮件 基本上出于测试目的,我添加了一个电子邮件地址为'test@yopmail.com'在数据库中手动执行 我正在尝试通过ajax检查此电子邮件是否存在。以下是我正在使用的代码:用于检查数据库数据的jquery ajax调用总是返回一个错误-.NET,jquery,ajax,asp.net-ajax,Jquery,Ajax,Asp.net Ajax,我正在开发一项功能,用户可以通过该功能检查数据库(注册页面)中是否已经存在电子邮件 基本上出于测试目的,我添加了一个电子邮件地址为'test@yopmail.com'在数据库中手动执行 我正在尝试通过ajax检查此电子邮件是否存在。以下是我正在使用的代码: [WebMethod(MessageName = "CheckEmailAvailability", Description = "Check whether an Email is available.")] public
[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); }
});
});
正在警告以下内容:测试[对象]
我做错了什么?请帮助您不需要对字符串值使用JSON.stringify
data: { email: JSON.stringify('test@yopmail.com')},
换成
data: { email: 'test@yopmail.com'},
为了正确地打印出错误发生的情况,您需要更改错误函数的参数。您的第一个参数是xhr对象,您可能希望检查第二个和第三个参数以查看失败的地方
类型:函数(jqXHR jqXHR、字符串textStatus、字符串ERRORSHORN)
从jQuery文档中:修复键入loca主机,不要将
字符串
与对象
连接起来:
$('#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); }
});
});
错误处理程序并不真正返回数据,它有三个与错误相关的参数,读取文档。控制台记录这三个参数,并告诉我们它们说了什么,因为您显然遇到了错误处理程序。服务器端脚本错误或网络错误,请检查您的网络选项卡我在我的网络面板中获得以下内容:选项CheckEmailAvailability Aborted尝试访问跨域资源时调用选项HTTP方法。HTML页面和web服务是否在同一个web服务器上运行?我得到了相同的结果:Test[object]