我正在尝试通过处理程序发送带有ajax的邮件。而且我不知道为什么......
有人可以指导我发表文章或其他解释如何调查" ajax打电话?
项目 - > App_Code-> Mail.cs(发送邮件)
public static bool SendMail(string email)
{
DatingUser du = BL.BlContent.GetUser_ByEmail(email);
if (du != null)
{// Email sending
string thePassword = du.Password;
string eBody = "<div style='direction:rtl;'><b>your password is: </b>" +thePassword;
MailMessage MyMailMessage = new MailMessage("XXX@gmail.com", "XXX@gmail.com", "message", eBody);
MyMailMessage.IsBodyHtml = true;
try
{
SmtpClient SMTPServer = new SmtpClient();
SMTPServer.Send(MyMailMessage);
return true;
}
catch
{
return false;
}
}
return false;
}
项目 - &GT; Handlers-&GT; forgotPass_sendMail.ashx
public void ProcessRequest(HttpContext context)
{
String emailToSendTo = context.Request.Form.Get("email");
bool mailSent = Mail.SendMail(emailToSendTo);
if (mailSent)
{
context.Response.Write("true");
}
else
{
context.Response.Write("false");
}
}
项目 - &GT;控制 - &GT; LogIn.ascx
<asp:Button runat="server" ID="btn_forgotPass" Text="send" ValidationGroup="forgot" OnClientClick="EmailForgotPass(); " />
function EmailForgotPass() {
var settings = {
'data': $('#email_forgotPass').val(),
'url': "~/Handlers/forgotPass_sendMail.ashx",
'contentType': 'application/x-www-form-urlencoded; charset=UTF-8'
};
SendMail(settings);
}
function SendMail(settings) {
var success = false;
$.ajax({
type: "POST",
contentType: settings.contentType,
data: settings.url,
dataType: "json",
async: true,
success: function (data) {
success = true;
$('#mailStatus').html('<p>Your password has been sent</p>');
},
error: function (data) {
success = false;
$('#mailStatus').html('<p>Something wen\'t wrong</p>');
}
});
return false;
我做错了什么? 任何建议将不胜感激,以及关于如何探索ajax错误的文章&#34;
答案 0 :(得分:0)
尝试将此添加到您的错误块
error: function (data) {
alert(data);
success = false;
$('#mailStatus').html('<p>Something wen\'t wrong</p>');
}
如果服务器返回错误,这将为您提供一个错误消息框。否则,您可以使用Chrome等具有开发人员工具的浏览器,您可以查看与您的ajax调用相关的请求和响应数据。
答案 1 :(得分:0)
网址错误我认为
$.ajax(
{
type: "POST",
contentType: settings.contentType,
data: settings.data,//I changed this line of code <------------
url: settings.url,//And this one <----------------------
dataType: "json",
async: true,
success: function (data) {
success = true;
$('#mailStatus').html('<p>Your password has been sent</p>');
},
error: function (data) {
success = false;
$('#mailStatus').html('<p>Something wen\'t wrong</p>');
}
您可以检查服务器上的PHP_error.log文件。这将为您提供错误消息。(默认情况下,它位于Linux上的IIS上的c:\ Windows \ Temp中我无法告诉)
你还有一些错误的代码行如下:
String emailToSendTo = context.Request.Form.Get("email");
//your doing a POST request not a GET
也许应该是这样的:
String emailToSendTo = context.Request.Form.Post("email");
我唯一不喜欢/不确定的另一件事是
public void ProcessRequest(...)
我不认为这是你通过ASP.Net发送AJAX请求的方式。我的意思是我不认为这个页面加载时甚至会调用此函数。