2013-12-22 6 views
3

Я отправляю вызов ajax в цикле. она отлично работает только для первых двух итераций, после чего бросает ошибку исключение внутреннего сервера 500 с описанием «Запрос JSON был слишком велик, чтобы сериализовать» вот код: на стороне сервераОшибка при отправке вызова ajax [ошибка внутреннего сервера 500]

<script> 
    var things = new Array(); 
    var total = 0; 
    function Load() { 
     $.ajaxSetup({ cache: true, jsonpCallback: 'quranData' }); // define ajax setup 
     for (var counter = 1; counter < 4; counter++) { 
      (function (counter) { 
       setTimeout(function() { 
        $.getJSON("http://api.globalquran.com/surah/" + counter + "/quran-simple?jsoncallback=?", { 
         format: "jsonp" 
        }, function (Obj) { 
         $.each(Obj.quran, function (i, by) 
         { 
          $.each(by, function (verseNo, line) 
          { 
           var obj = new Object(); 
           obj.surah = line.surah; 
           obj.ayah = line.ayah; 
           obj.verse = line.verse; 
           things.push(obj); 
           total++; 
          }); 
         }); 
        }); 
       }, counter * 500); 
      }(counter)); 
     } 
     return false;  
    } 

:

[HttpPost] 
     public ActionResult DB_Rola(List<thing> things, int count) 
     { 
      return Json(new { IsSuccess = true }); 
     } 

любезно показать мне, как с этим бороться?

+0

Возможно, вы захотите установить 'maxJsonLength' в файле web.config. http://stackoverflow.com/questions/10966328/the-json-request-was-too-large-to-be-deserialized – PSL

ответ

1

Чтобы решить проблему, вам необходимо настроить свойство maxJsonLength на большее значение в web.config.

<system.web.extensions> 
    <scripting> 
     <webServices> 
      <jsonSerialization maxJsonLength="2147483644"/> 
     </webServices> 
    </scripting> 
</system.web.extensions> 

или более высокое значения для aspnet:MaxJsonDeserializerMembers,

<appSettings> 
    <add key="aspnet:MaxJsonDeserializerMembers" value="150000" /> 
</appSettings> 

Если эти варианты не работают, вы можете попробовать создать поставщик пользовательского значения JSON завод с использованием Json.NET, как указано в этой теме.

+0

спасибо, что вы сейчас работаете.! с

+0

@BaqerNaqvi Я рад, что смог помочь, если это работает, это отмечено как принятое, так что другие могут видеть, что это правильный ответ. И если вы можете – MZaragoza

+0

извините, я забыл.! :) –

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