Helpers - компьютеры, интернет, программирование

Первое нажатие кнопки отправки ASP.NET Core MVC возвращает ошибку (сеанс прерван)

Я совершенно новичок в этом и пытаюсь научиться выполнять вызовы API из JS с использованием Ajax.

Я запустил веб-приложение ASP.NET Core, используя MVC.

Я создал HTML-форму в Index.cshtml с кнопкой отправки (я хотел бы использовать некоторые функции бритвы в будущем, когда освою это!)

<form id="login_form">

    <input id="submit_button" type="submit" value="Submit" onclick="GeneralPost()"/>

</form>

Что я заметил, так это то, что первый раз, когда я нажимаю кнопку отправки после запуска режима отладки из Visual Studio (сервер работает), возвращает ошибку. Но более поздние нажатия кнопки возвращают успех!

Вот мой Ajax, который я поместил в папку site.js

function GeneralPost() {
var  data = "Data To Pass";
$.ajax({
    type: "POST",
    url: '/Home/Login',
    data: JSON.stringify(data),
    contentType: "application/json; charset=utf-8",
    dataType: "json",

    success: function (response) {
        alert(response.name);              
    },
    error: function () {
        alert("Error");
    }

});
}  

А вот и мой контроллер

 public class HomeController : Controller
{

    // What I wrote 
    [HttpPost()]
    public User Login([FromBody]string data)
    {

        User user = new User(); ;
        user.name = $"User {data}";
        user.id = "1";
        return user;

    }

    // the rest is already there from the MVC example by visual studio (deleted some code to make it shorter)
    public IActionResult Index()
    {
       return View();
    }

    public IActionResult About()
    {
        ViewData["Message"] = "Your application description page.";

        return View();
    }

Я также заметил, что когда я нажимаю кнопку отправки на странице бритвы, выполняется действие Index(). Я не уверен, почему действие Index выполняется все время, когда я запросил действие Login! это что-то с MVC? Связано ли это поведение с моим первым запросом на прерывание?

Я думаю, что также неплохо включить мою конфигурацию из Startup.cs, так как я не уверен, что понимаю все это, и я пытаюсь предоставить как можно больше полезной информации.

      // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
            app.UseHsts();
        }


       // app.UseHttpsRedirection();
        app.UseStaticFiles();
        app.UseCookiePolicy();

        app.UseMvc(routes =>
        {

            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");

        });
    }

Подводя итог:

1- В первый раз, когда я нажимаю кнопку отправки после запуска сеанса отладки из Visual Studio, я получаю сообщение об ошибке, и Fiddler показывает мне, что состояние сеанса прервано.

2- Во второй раз, когда я нажимаю кнопку, даже если она находится на новой вкладке или в новом браузере, я получаю ожидаемые результаты без ошибок.

Любые идеи? я ценю вашу помощь


Ответы:


1

Я нашел решение по следующему вопросу

Запрос AJAX не работает в первый раз, но работает после этого Думаю, я использовал неправильные ключевые слова для поиска!

в основном форма была типа submit. Таким образом, он обновляет страницу, когда я нажимаю кнопку отправки, и это вызывает вмешательство и прерывание запроса.

07.08.2018
Новые материалы

Интуитивное понимание тензоров в машинном обучении
Тензор является важной концепцией во многих научных областях, таких как математика, физика, обработка сигналов и компьютерное зрение, и это лишь некоторые из них. В математике тензор — это..

Использование машинного обучения для диагностики болезни Альцгеймера, часть 4
Маркеры семантической согласованности для ранней диагностики болезни Альцгеймера (arXiv) Автор: Давиде Колла , Маттео Дельсанто , Марко Агосто , Бенедетто Витиелло , Даниэле Паоло Радичони..

Почему объяснимость так важна прямо сейчас?
По мере того, как системы искусственного интеллекта и инструменты на основе машинного обучения распространяются в нашей повседневной жизни, как практики, так и критики все чаще заявляют о..

Анимированный математический анализ
Использование Manim для создания математических анимированных визуализаций Визуализация данных помогает понять скрытые закономерности в данных, которые невозможно визуализировать..

Создание простого слайдера изображений с помощью JavaScript
Узнайте, как создать базовый слайдер изображений с помощью HTML, CSS и JavaScript. Введение В этом уроке мы создадим удобный слайдер изображений, используя JavaScript, HTML и CSS. Ползунок..

Создание базы данных с помощью супергероя «Python»
В этом посте мы узнаем, как создать «базу данных SQLite с помощью модуля python sqlite3, создав простую функцию входа и регистрации. Готовы ли вы к этому путешествию? Если да , давайте приступим..

ИИ для чайников: руководство для начинающих по пониманию будущего технологий
Вы чувствуете, что остались позади в мире ИИ? Не волнуйтесь, вы не одиноки! Со всей этой шумихой вокруг искусственного интеллекта может быть трудно понять, с чего начать. Но не позволяйте сленгу..