Ajax вызов сбой, но не выдает ошибку при отладке - PullRequest
1 голос
/ 12 февраля 2020

Мой AJAX вызов используется для отправки данных с JS на C#, поэтому я могу использовать его на стороне сервера . Мой вызов, кажется, приводит к ошибке , выдающей предупреждение («Ошибка»). Я запускаю свое решение в отладчике Visual Studio, но там не является ошибкой . Я так много пытался решить эту проблему, но не уверен, почему она не работает.

Почему бы это не сработало, если бы не было ошибок?

AJAX вызов -

function get_email(){
    var test_email = $("#email_entry").val();
    console.log(test_email);
    $("#email_entry").val('');

if ((email_validate(test_email)) == true) {

    $.ajax({
        type: "POST",
        url: "WebForm1.aspx/GetData",
        contentType: "application/text; charset=utf-8",
        data: test_email,
        dataType: "string",
        success: function (result) {
            alert('Works');
        },
        error: function (result) {
            alert('Doesnt work');
        }
    });

}else if ((email_validate(test_email)) == false) {
    alert("Email is not valid!");
}
}

C#, где хранятся данные

    public partial class WebForm1 : System.Web.UI.Page
    {
        public class EmailStore
        {
            public string Email { get; set; }
        }

        [WebMethod]
        public static void GetData(string test_email)
        {
            String a = test_email;
            Console.WriteLine(a);
        }
        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }

Ответы [ 2 ]

1 голос
/ 12 февраля 2020

измените $.ajax(), как показано ниже:

 $.ajax({
        type: "POST",
        url: "WebForm1.aspx/GetData",
        contentType: "application/json; charset=utf-8",
        data: JSON.stringify({test_email: test_email}),
        dataType: "json",
        success: function (result) {
            alert('Works');
        },
        error: function (result) {
            alert('Doesnt work');
        }
    });

0 голосов
/ 12 февраля 2020

Я заметил, что вы не возвращаете статус из вашего c# метода, чтобы ответить, был ли он успешным или нет. В ASPNetCORE c# результаты возвращаются на вызов ajax следующим образом:

public IActionResult GetData(string person_email)
    {
     try
        {
        String a = test_email;
        Console.WriteLine(a);
        return string.IsNullOrEmpty(a) ? 
        (IActionResult)BadRequest("email null or empty") : Ok();
        }
        catch (Exception ex)
        {
            return BadRequest(ex.Message);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...