Следующее из этого вопроса jQuery Ajax error handling, show custom exception messages Я пытаюсь показать своим пользователям пользовательское сообщение об ошибке от ColdFusion (через AJAX), когда форма отправлена, но произошла ошибка.jQuery Сообщение об ошибке Ajax с ColdFusion
Я пытался сделать это с помощью стандартного <cfthrow errorcode="500" message="You did something wrong"/>
, который будет возвращать обратно в JQuery код состояния ответа, который не 200, следовательно, его легко показать ошибку, как, например:
...
error: function (xhr, textStatus, thrownError) {
$('p').text(thrownError);
}
Однако в производстве ColdFusion серверам рекомендуется отключать отчет об ошибках в настройках отладки. Итак, теперь все мои пользователи видят "Internal server error"
вместо специального сообщения.
Моим временным решением является просто сделать <cfreturn "Error: You did something wrong"/> <cfabort>
, а затем сделать jQuery искать любой возвращенный результат с сервера, где текст начинается с «Error:».
Я бы скорее использовал правильную обработку исключений с помощью <cfthrow>
. Как это может быть достигнуто с учетом рекомендации по отладке?
Является ли ответ пакетом JSON? Если это так, включите в JSON свойство 'success' и/или' error', и проверьте эти значения, когда ответ получен на стороне клиента. –
Так что это всегда будет обрабатываться в методе 'success()' для вызова ajax - вот что я делаю сейчас, но ищет строку «Ошибка:» в возвращаемом результате ColdFusion. Кажется неправильным обрабатывать ошибки в методе успеха. –
Это неправильно, по нескольким причинам, включая SEO. Если страница имеет успех 200, ничто не скажет поисковому искателю, что ответ страницы ошибочен. –