【问题标题】:Ajax just return errorAjax 只是返回错误
【发布时间】:2017-07-15 22:51:57
【问题描述】:

我有一个问题,直到现在我在任何教程中都找不到。我在 Web 服务和 C# 中有一个代码,必须为忘记密码的人发送一封包含密码的电子邮件。我在服务端有一个控制器,在我的移动应用程序中有一个带有 ajax 代码的 JavaScript 和一个 html。

代码如下:

C# 控制器:

using LuppBusiness.DataLayer.DAL;
using LuppBusiness.DataLayer.Model;
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Configuration;
using System.Web.Http;
using System.Net.Http;

namespace LuppAppService.Controllers{
    public class ForgotPasswordController : ApiController{

        public HttpResponseMessage GetForgotPassword(string email) {
                //UsuarioDAL usu = new UsuarioDAL();
                //var obj = usu.EmailUsuario(email);
                EnviarEmailTxt("Recuperação de Senha", "teste", email);

            return new HttpResponseMessage()
            {
                Content = new StringContent("200")
            };
        }

        public static bool EnviarEmailTxt(string Assunto, string mensagem, string destinatario)
        {
            string sUserName = WebConfigurationManager.AppSettings["MENSAGEM.USERNAME"];
            string sPassword = WebConfigurationManager.AppSettings["MENSAGEM.PASSWORD"];
            string sBobdy = mensagem;

            MailMessage objEmail = new MailMessage();
            objEmail.To.Add(destinatario);
            objEmail.From = new MailAddress(sUserName.Trim());
            objEmail.Subject = Assunto;
            objEmail.IsBodyHtml = true;
            objEmail.Body = sBobdy;

            string strSmtp = WebConfigurationManager.AppSettings["MENSAGEM.SMTP"];
            int porta = Convert.ToInt32(WebConfigurationManager.AppSettings["MENSAGEM.PORT"]);
            bool ssl = Convert.ToBoolean(WebConfigurationManager.AppSettings["MENSAGEM.SSL"]);

            SmtpClient smtp = new SmtpClient(strSmtp, porta /* TLS */);
            smtp.UseDefaultCredentials = true;
            smtp.EnableSsl = ssl;
            smtp.Credentials = new NetworkCredential(sUserName, sPassword, "");
            try
            {
                smtp.Send(objEmail);
                return true;
            }
            catch (Exception e)
            {
                return false;
            }
        }
    }
}

Javascript:

function forgotPassword() {
    var enviar = $("#es-mail").val();

    $.ajax({
        type: "GET",
        async: true,
        data: JSON.stringify({ email: enviar }),
        url: linkServidor + "api/usuario/GetForgotPassword",
        contentType: "application/json; charset=utf-8",
        success: function (data) {
            navigator.notification.alert('Enviamos um e-mail para sua conta.', fn_ErroApp(), "LuppApp");
        },
        error: function (msg) {
            navigator.notification.alert('Estamos verificando o problema.', fn_ErroApp(), "Ocorreu um problema.");
        }
    });
}

还有 HTML:

 <section id="esqueci-senha" style="display:none;">
            <!--<p id="feedback">not logged in</p>-->
            <div class="caixa-dados-login">
                <form>
                    <div class="barra-superior">
                        <img src="images/trave-horizontal.png" />
                    </div>
                    <div class="content-dados">

                        <div class="form-user">
                            <label for="mail"><strong> Email: </strong></label>
                            <input type="text" class="email" id="es-mail">
                        </div>

                    </div>
                    <div class="barra-inferior"><img src="images/trave-horizontal.png" /></div>

                    <div class="btn-entrar">

                        <button type="button" class="btn btn-default btn-enviar-senha" onclick="forgotPassword()">Enviar</button>
                    </div>

                </form>
            </div>
        </section>

【问题讨论】:

  • 错误是什么?
  • 我不明白问题是什么。顺便说一句,您不应该向人们发送他们的密码,因为您不应该将他们的密码存储为纯文本。
  • 有用的信息是您在浏览器 developer 工具网络选项卡中看到的响应 - 即服务器响应您的请求而发回的确切信息
  • 对不起,我现在才看到问题。错误是ajax总是落入错误函数中,我拿不准原因...
  • 大家好。我解决了我的问题。我只是更改了ajax,将变量的值放在链接中并删除数据。那样:' url: linkServidor + "api/usuario/GetForgotPassword/enviar="+enviar, contentType: "application/json",' 谢谢你的帮助。

标签: javascript c# jquery ajax web-services


【解决方案1】:

首先感谢所有试图帮助我的人。我找到了解决我的问题的方法。对于有相同问题的人,请遵循解决方案:

类型:“获取”, //数据:JSON.stringify(enviar), url: linkServidor + "api/ForgotPassword/GetForgotPassword?enviar=" + enviar, 内容类型:“应用程序/json”,

我更改了这部分代码,取出数据并将变量放入 url 的正文中。我等着我可以帮助别人。我真的很感谢所有尝试帮助我的人。

【讨论】:

    猜你喜欢
    • 2014-01-27
    • 1970-01-01
    • 2017-11-01
    • 2017-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    相关资源
    最近更新 更多