2016-07-22 2 views
0

у меня есть кнопка, при нажатии на нее это запустить Ajax, отправляющий идентификатор контроллера Теперь контроллера сделать что-то и его КИ нет ошибки в стороне сервера ,, но в действии в контроллере у меня есть код с restsharp, который отправьте запрос на веб-сервис для отдыха, его работа тоже прекрасна (), , но эта часть () находится в foreach и работает в течение 5 или ... времени , и когда я когда-нибудь это делаю ajax занимает много времени, а часть ошибки ajax-кода запущена Что мне делать?ошибки в AJAX запроса к контроллеру действия осины MVC

код 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" /> 

ответ

0

Добавить тайм-аут для вызова 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() { 
        } 
       }); 
     }); 

Отъезд this post о том, как справиться с ошибкой тайм-аута.

+0

его не ajax время ou t проблема .. я вижу ошибку, и ajax не возвращает ошибку тайм-аута .... и на стороне сервера: asp после ошибки ajax все еще выполняет это задание согласно fidller – user3726322

0

проблема все еще продолжается;

, но я использовать этот

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

вместо регулярного

Еогеасп

и сделать тело Еогеасп параллельно, и время снижается, проблема решена

Смежные вопросы