2015-08-13 2 views
1

Предполагая, что первый вызов Ajax будет успешным (да, это успешно).Вызов ajax в обратном вызове ajax с использованием jquery

Я зову Аякс в этом обратном вызове, как ниже

function OnSuccess(data) { 

        $('.modal-footer').show(); 
        if (data.d[4].toLowerCase().indexOf("success") >= 0) { 
         $('#resetMsg').html('Password has been sent on ' + data.d[3]); 
         $.ajax({ 
          type: "GET", 
          url: "frmLogin.aspx/SendMail", 
          data: '{"mailTo":"' + data.d[3] + '","reqName":"' + data.d[0] + '","username":"' + $('#txtUser').val() + '","password":"' + data.d[2] + '"}', 
          contentType: "application/json; charset=utf-8", 
          dataType: "json" 
         }); 
        } 
        else { 
         $('#resetMsg').html(data.d[4]); 
        } 
       } 

Моего WebMethod является

[WebMethod] 
    static void SendMail(string mailTo, string reqName, string username, string password) 
    { 
     CommonClient commonSvc = new CommonClient(); 
     bool mailStatus = false; 
     if (mailTo != string.Empty) 
     { 
      bool isValid = CommonUtility.isValidEmail(mailTo); 
      if (!isValid) 
      { 
       mailStatus = false; 
      } 
     } 
     string From = ConfigurationManager.AppSettings["FromEmailID"]; 
     string Subject = "LEAP - password reset"; 
     StringBuilder body = new StringBuilder(); 
     body.Append("Password reset successfully for " + reqName +"<br>"); 
     body.Append("Username: " + username + "<br>"); 
     body.Append("Password: " + password + "<br>"); 
     string ErrorMsg = ""; 
     try 
     { 
      MailAddress from = new MailAddress(From, "HDFCERGO"); 
      MailMessage Mail = new MailMessage(); 
      Mail.To.Add(mailTo); 
      Mail.From = from; 
      Mail.Subject = Subject; 
      Mail.Body = body.ToString(); 
      if (!String.IsNullOrEmpty(ConfigurationManager.AppSettings["BCCEmailID"].ToString())) 
      { 
       Mail.Bcc.Add(ConfigurationManager.AppSettings["BCCEmailID"].ToString()); 
      } 
      Mail.IsBodyHtml = true; 

      SmtpClient smtpMailObj = new SmtpClient(); 
      smtpMailObj.Send(Mail); 
      Mail.Dispose(); 
      mailStatus = true; 
     } 
     catch (Exception Ex) 
     { 
      ErrorMsg = Ex.Message; 
      mailStatus = false; 
     } 
     finally 
     { 
      LogMailSentDetails(body.ToString(), Subject, mailTo, From, mailStatus == true ? "Success" : "Failed", ErrorMsg); 
     } 

, но он никогда не дозвонился .. :(это потому, что я не правильно передавать параметры? Пожалуйста помогите мне с этим :(

+0

Вызывается ли какая-либо часть OnSuccess()? У вас есть пример вашего исходного кода ajax? –

+0

Да, $ ('. Modal-footer'). Show(); вызывается, которая является первой строкой в ​​OnSuccess – Imad

+0

Есть ли ошибки JavaScript в консоли? Это достигается внутри инструкции 'if'' if (data.d [4] .toLowerCase(). IndexOf ("success")> = 0) {'? Поставьте «предупреждение», чтобы убедиться. Правильно ли этот URL-адрес? Здесь недостаточно информации, чтобы определить, что ваш код работает правильно. –

ответ

3

Атрибут WebMethod должен использоваться с общественностью метод:

How to: Use the WebMethod Attribute

Изменить это:

[WebMethod] 
public static void SendMail(string mailTo, string reqName, string username, string password) 
{ 
//rest of code 

Кроме того, необходимо использовать метод post для вызова метода, как это поведение по умолчанию, а не метод get.

+0

Так глупо меня: '( – Imad

+0

@ imadoddin-ibn-alauddin Нет проблем, это легко сделать. Вы также используете запрос 'get', я полагаю, вам также нужно использовать метод' post'. :) – hutchonoid

+0

Да, обновлено что :) Большое спасибо – Imad

Смежные вопросы