JQuery ajax успех никогда не запускается - PullRequest
1 голос
/ 02 мая 2020

У меня есть этот jquery код, отправка элементов в контроллер и загрузка с контроллера, все в порядке, загрузка в порядке, я проверяю ответ в Chrome Вкладка «Сеть» в порядке. но функция успеха никогда не запускается после завершения процесса. (я уже использую async:false;)

 $(document).on('click', '#baslat', function (e) {
    var token = $("#token").val();
    var islemler = [];
    var secililer = [];

    $.each($("input[class='cc']:checked"), function () {
        var islem = {};
        islem.IslemTuru = $(this).attr("id");
        islemler.push(islem);
    });
    $.each($("tr[class='sec']"), function () {
        if ($(this).children('td:eq(1)').children("input[type='checkbox']").prop('checked')) {
            var beyan = {};
            beyan.Id = $(this).attr("id");
            beyan.TahakkukId = $(this).data("id");
            beyan.KisaKod = $(this).children('td:eq(2)').html();
            beyan.BeyannameTuru = $(this).children('td:eq(4)').html();
            beyan.Ay = $(this).children('td:eq(5)').html().substring(8, 10);
            beyan.Yil = $(this).children('td:eq(5)').html().substring(11, 16);
            secililer.push(beyan);
        }
    });
    $.ajax({
        url: '/Ebeyan/BeyanAl',
        type: "POST",
        dataType: "string",
        async: false,
        contentType: 'application/json; charset=utf-8',            
        data: JSON.stringify({ secililer, islemler, token }),
        success: function (data) {
            $("#mesaj").html(data);
            alert("done.");
        }
    });
});

Контроллер здесь. Я должен использовать Thread.Sleep (1000) в методе. потому что сервер, на котором я хочу загрузить файлы, хочет, чтобы между каждым запросом проходила 1 секунда.

 public async Task<string> BeyanAl(List<Beyanname> secililer, List<Islem> islemler, string token)
    {
        bool indir = true;
        bool yazdir = false;
        bool gonder = false;
        foreach (var islem in islemler)
        {
            if (islem.IslemTuru =="cbyazdir")
            {
                yazdir = true;
            }
            if (islem.IslemTuru  == "cbgonder")
            {
                gonder= true;
            }
        }
        foreach (var GelenBeyan in secililer)
        {
            string YolAdi = YolHazirla(GelenBeyan);
            string DosyaAdi = DosyaAdiHazirla(GelenBeyan);
            await dosyaindir(token, YolAdi + "/" + DosyaAdi, "Beyan", GelenBeyan.Id, "");
            await dosyaindir(token, YolAdi + "/" + DosyaAdi, "Tahakkuk", GelenBeyan.Id, GelenBeyan.TahakkukId);
        }
        return "İndirildi";
    }

здесь chrome экраны ответов r1 r2

1 Ответ

0 голосов
/ 02 мая 2020

В ajax нет типа данных 'string', типы данных делают его json или текстовым

$.ajax({
    url: '/Ebeyan/BeyanAl',
    type: "POST",
    dataType: "string", <-- make it json or text
    async: false,
    contentType: 'application/json; charset=utf-8',            
    data: JSON.stringify({ secililer, islemler, token }),
    success: function (data) {
        $("#mesaj").html(data);
        alert("done.");
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...