2016-07-22 4 views
0

i-Taste haben, dass, wenn Sie darauf klicken es Ajax ausführen, die ID senden an die Steuerung jetzt Controller etwas tun und es ist ok, kein Fehler in Server-Seite ,, aber in der Wirkung in controller ich habe code mit restsharp, dass senden anforderung, um web service seine arbeit gut zu (), aber dieser teil () ist in foreach und lauf für 5 oder ... zeit und wenn ich diese sachen irgendwann tun Ajax dauert zu lange und der Fehler Teil des Ajax-Code ausgeführt wird Was soll ich tun?Fehler in Ajax-Request an Regler asp mvc

AJAX-Code:

   $(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() { 
         } 
        }); 
      }); 

Aktionscode

     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 + "^"; 
         } 
        } 

und ich hinzufügen dieses

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

Antwort

0

hinzufügen Timeout auf die Ajax-Aufruf web.config:

$(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() { 
        } 
       }); 
     }); 

Überprüfen Sie this post wie Timeout-Fehler behandelt werden.

+0

es ist nicht Ajax Zeit ou t Problem..ich sehe den Fehler und die Ajax nicht einen Timeout-Fehler zurück .... und Server-Seite: die Asp nach Ajax-Fehler immer noch es Job nach Fidller tun – user3726322

0

das Problem ist noch an;

aber ich benutze diese

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

statt regulären

foreach

und machen den Körper von foreach parallel und die Zeit abnimmt, das Problem gelöst