Некорректный ответ сервера (The requested URL did not return JSON): примеры и получение информации об ошибке

Иногда при работе с веб-частью отображается всплывающее окно с ошибкой:

Error! The requested URL did not return JSON. или Parsing JSON Request failed.

Пример подобной ошибки приведён на скриншоте:

Данная ошибка означает, что от сервера был получен некорректный ответ. Для выяснения причин ошибки, необходимо узнать ответ сервера. Это можно сделать в браузере с помощью инструментов разработчика.

Получение ответа сервера в Mozilla Firefox:

1. Открыть ELMA в браузере, нажать клавишу F12 либо сочетание Ctrl+Shit+I – откроется консоль с инструментами разработчика.

2. Воспроизвести ошибку.

3. Перейти в консоли на вкладку Сеть (Network).

4. На вкладке Сеть отображаются выполненные методы. Кликнуть по строке с нужным методом (тот метод, который появился сразу после выполнения действия, обычно последний).

5. В правой части консоли перейти на вкладку Ответ (Response). Подождать, пока на вкладке отобразится ответ сервера.

6. В этой вкладке будет расположен ответ сервера и стек-трейс ошибки, например, такой:

<h2>К сожалению, произошла ошибка.</h2>
<h3>В случае повторения ошибки обратитесь к администратору системы, передав ему текст ошибки
</h3>
<div>
System.InvalidCastException: Не удалось привести тип объекта &quot;Telerik.Web.Mvc.Infrastructure.AggregateFunctionsGroup&quot; к типу &quot;EleWise.ELMA.Model.Entities.IEntity&quot;.</h3>
    <pre id="st_81ed0915_8e45_4a39_bf70_13f04e40230b"class="exception">   в System.Linq.Enumerable.<CastIterator>d__b1`1.MoveNext()
   в System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   в EleWise.ELMA.Web.Mvc.Controllers.TablePartController.GetGridResult(TablePartData data)
   в EleWise.ELMA.Web.Mvc.Controllers.TablePartController.Grid(GridCommand command, TablePartRequestData data)
   в lambda_method(Closure , ControllerBase , Object[] )
   в System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
   в System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
   в System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12()
   в System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
   в System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
   в System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
   в System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
   в System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
   в System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
   в System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
   в System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
   в System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
   в System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
   в System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
   в System.Web.Mvc.Controller.ExecuteCore()
   в System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)
   в System.Web.Mvc.MvcHandler.<>c__DisplayClass6.<>c__DisplayClassb.<BeginProcessRequest>b__5()
   в System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass1.<MakeVoidDelegate>b__0()
   в Orchard.Mvc.Routes.ShellRoute.HttpAsyncHandler.EndProcessRequest(IAsyncResult result)
   в System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   в System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

 

Получение ответа сервера в Google Chrome:

1. Открыть ELMA в браузере, нажать клавишу F12 либо сочетание Ctrl+Shit+I – откроется консоль с инструментами разработчика.

2. Воспроизвести ошибку и закрыть всплывающее окно.

3. Перейти в консоли на вкладку Сеть (Network).

4. На вкладке Сеть отображаются выполненные методы. Кликнуть по строке с нужным методом (тот метод, который появился сразу после выполнения действия, обычно последний).

5. В правой части консоли появится дополнительная информация о методе. Перейти на вкладку Ответ (Response). В этой вкладке будет расположен ответ сервера и стек-трейс ошибки.