簡體   English   中英

AJAX請求動作控制器ASP MVC中的錯誤

[英]error in ajax request to action controller asp mvc

我有一個按鈕,當您單擊它時,它運行將ajax發送給控制器的ajax,現在控制器在服務器端執行了某些操作,並且它沒有錯誤,但是在控制器中的操作中,我有帶有restsharp的代碼,可以將請求發送到其余的Web服務也可以很好地工作,但是這一部分在foreach中運行了5或...時間,當我這樣做時,ajax占用了很長時間,而ajax代碼的錯誤部分運行了,我該怎么辦?

Ajax代碼:

             $(document).on("click", "#btn-submit", function () {
                    $.ajax({
                        type: 'POST',
                        url: '/Panel/CheckRefOrderCode',
                        data: JSON.stringify({
                            factorrefid: $("#ref-check").val()
                        }),
                        contentType: 'application/json; charset=utf-8',
                        dataType: 'json',
                        success: function (result) {
                            if (result.DntSuccess) {
                            } else {
                            }
                        },
                        error: function () {
                        }
                    });
            });

動作代碼

                        foreach(string s in str)
                    {
                        var client = new RestClient("http://**.com/api/v1/orders/status?support_code=71GD4A");
                        var request = new RestRequest(Method.POST);
                        request.AddHeader("token", "15befa43");
                        IRestResponse response = client.Execute(request);

                        RefOrderJsonViewModel.RefOrderJson reforderbackJson =
                            JsonConvert.DeserializeObject<RefOrderJsonViewModel.RefOrderJson>(response.Content);

                        if (reforderbackJson.status.ToLower() == "ok")
                        {
                            performed += reforderbackJson.data.performed;
                            order_status += reforderbackJson.data.order_status + "^";
                        }
                    }

我將其添加到web.config

    <httpRuntime executionTimeout="100000000" maxRequestLength="262144" />

向ajax調用添加超時:

 $(document).on("click", "#btn-submit", function () {
                $.ajax({
                    type: 'POST',
                    url: '/Panel/CheckRefOrderCode',
                    data: JSON.stringify({
                        factorrefid: $("#ref-check").val()
                    }),
                    contentType: 'application/json; charset=utf-8',
                    dataType: 'json',
                    **timeout: 10000 // sets timeout to 10 seconds**
                    success: function (result) {
                        if (result.DntSuccess) {
                        } else {
                        }
                    },
                    error: function () {
                    }
                });
        });

查看此帖子 ,了解如何處理超時錯誤。

問題仍然存在;

但是我用這個

    Parallel.ForEach(myEnumerable, obj =>
{
   // ... 
});

代替常規

前言

並並行執行foreach的主體,並且時間在減少,問題得以解決

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM