简体   繁体   English

JQuery ajax 成功从未运行

[英]JQuery ajax success never run

i have this jquery code, sending items to controller and download from controller, everything is fine downloads is fine, i check response from in Chrome Network Tab is okay.我有这个 jquery 代码,将项目发送到 controller 并从 controller 下载,一切都很好but success function never run after process done.但是成功的 function 在过程完成后永远不会运行。 (i'm using async:false; already) (我正在使用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.");
        }
    });
});

The controller is here. controller 在这里。 I have to use Thread.Sleep (1000) in the method.我必须在方法中使用 Thread.Sleep (1000)。 because the server on which I want to download files wants 1 second to pass between each request.因为我要下载文件的服务器希望在每个请求之间传递 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";
    }

here is chrome response screens r1 r2这是 chrome 响应屏幕r1 r2

There is no 'string' data type in ajax datatypes make it json or text ajax 数据类型中没有“字符串”数据类型,使其成为 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.");
    }
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM