2014-02-21 3 views
3

Как jsf.ajax.addOnError действительно ловят ошибки? Я не нашел информации о механизме. Я только обнаружил, что это прослушиватель ошибок.Обработка ошибок ajax с помощью jsf.ajax.addOnError

+1

Зачем ошибкам принимать ошибки? Что именно это, проблема, которую вы пытаетесь решить, или функциональное требование, которое вы пытаетесь реализовать? Это может дать лучшие ответы, чем задавать риторический вопрос. – BalusC

ответ

1

Везде, где вы нашли заявление, что jsf.ajax.addOnError является ошибкой слушателем, этот источник является неправильным. Функция addOnErrorдобавляет прослушиватель ошибок (то есть функцию, которую вы определяете самостоятельно и которая вызывается всякий раз, когда в системе JSF возникает ошибка).

Это прямо из JSF-2.2 spec, 13.3.6.2:

Функция jsf.ajax.addOnError принимает аргумент функции JavaScript, который будет уведомление при возникновении ошибок во время любого цикла запроса/ответа Ajax. [P1-старт-событие] Реализация должна обеспечивать функцию JavaScript, который зарегистрирован должен быть назван в соответствии с ошибками, изложенными в разделе ТАБЛИЦА 14-5 «Ошибки». [P1-конец]

Таким образом, таблица «errors» определяет, в каких условиях ваша функция будет вызвана. Вот они:

  • httpError: статус запроса == NULL или request.status == неопределенными или request.status < 200 или request.status> = 300
  • serverError: Ответ Ajax содержит элемент "error".
  • malformedXML: Ответ Ajax не соответствует надлежащему формату.
  • emptyResponse: От сервера не было ответа Ajax.

Реализации JSF в основном запускают запрос Ajax и определяют внутренние обработчики, которые вызываются браузером при поступлении ответа. Затем они должны проверять ответ, и если один из вышеуказанных условий соблюден, они ищут, если вы зарегистрировали любые функции, которые должны быть вызваны, и выполняйте их в случае необходимости (они делают намного больше, но это часть, о которой идет речь здесь).

+0

Основываясь на предыдущем вопросе OP (http://stackoverflow.com/questions/21936401/handling-ajax-errors), я считаю, что он уже все это знает. – BalusC

+0

@BalusC Ну, это оставляет бит «добавляет ошибку», то есть указывая на ошибочную предпосылку вопроса. Здесь нет волшебства (на этот раз!) – mabi

+0

Да, вы ответили правильно. Но я считаю, что это не помогает ему решить свою * актуальную * проблему/требование. Я верю, что он просто задал неправильный вопрос. – BalusC

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