Обработка серверной стороны HTTP 4nn/5nn ошибки, возвращая целый документ HTML в запросах ajax jQuery

Муравей zipfileset делает задание

<jar id="files" jarfile="all.jar">
    <zipfileset src="first.jar" includes="**/*.java **/*.class"/>
    <zipfileset src="second.jar" includes="**/*.java **/*.class"/>
</jar>
19
задан BalusC 28 March 2013 в 12:46
поделиться

4 ответа

При необходимости вы также сможете перенаправить на одну из предопределенных ошибок страницы, которые вы настроили с помощью window.location.href = "url-to-error-page";

2
ответ дан 30 November 2019 в 05:12
поделиться

Используйте диалог JQuery, примерно так:

function handleXhrError(xhr) {
   ele = $("<div></div>").appendTo("body");
   ele.html(xhr.responseText);
   $(ele).dialog();

}

Я должен ответить на остальное, что вы спросил. Я бросаю и перехватываю определенные исключения там, где могу, и отправляю клиенту специальные сообщения. Иногда я поручаю клиенту запустить функцию, которая может перенаправить браузер или частично обновить часть страницы. Это просто зависит от обстоятельств. Улавливание 400/500 будет иметь дело с реальными ошибками, но вы также хотите один раз написать код JS, чтобы отфильтровать все ваши запросы AJAX для настраиваемых флагов ошибок, которые вы будете возвращать с сервера, посмотрите эту страницу для получения дополнительной информации: http : //www.bennadel.com/blog/1392-Handling-AJAX-Errors-With-jQuery.htm

3
ответ дан 30 November 2019 в 05:12
поделиться

Думаю, лучше написать короткое сообщение, чем полностью переписывать страницу. Таким образом, это не будет сильно мешать работе самой страницы. Google Reader и Gmail делают что-то подобное. Reader показывает сообщение и не отмечает ваши записи как прочитанные, но вы все равно можете прочитать все загруженные сообщения.

1
ответ дан 30 November 2019 в 05:12
поделиться

Похоже, вы хотите сохранить рабочую страницу / приложение после получения состояния ошибки, которое может привести к невозможности использования.

Я бы реализовал историю состояний на стороне клиента и вернулся к страницу до последнего пригодного для использования состояния, информируя пользователя о том, что произошло, с помощью заметного внутреннего элемента

. Теория, лежащая в основе этого, связана с транзакциями. Обычно поток выполнения следующий:

  1. Указать диспетчеру транзакций начать транзакцию.
    1. Начать транзакцию
    2. Состояние захвата
    3. Вернуть управление вызывающему коду
  2. Начать операции, которые являются частью транзакции
  3. При ошибке: дать команду диспетчеру транзакций откатить транзакцию
    1. Return execution environment to state captured above
    2. Discard any data no longer needed (e.g. state serialization)
  4. On success: instruct transaction manager to commmit transaction
    1. Finalize operations in transaction as needed
    2. Discard any data no longer needed

I have not done serious study into transaction management in javascript. Since you state that the server-side error makes the client side unusable, perhaps there is some way to implement portions of the transaction on the server-side. It is important that you not leave things half done there more so than on the client-side.

Have you thought about doing a "pre flight check" request to try to capture these issues before the client-side application attempts to do the real work?

1
ответ дан 30 November 2019 в 05:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: