Здравствуйте!
Если при Ajax запросе php файл вернёт ложь (echo false;), то какая функция должна сработать success или error?
Просто в интернете я вижу, что тру или фалс проверяют в success .
Я экспериментирую, у меня всегда выполняется error, пока не вернётся json массив. Я не вижу смысла ещё проверять и в success.
В .success попадёт если не было ошибки выполнения скрипта на серваке.
.error - если ошибка была.
Если у вас попадает в error - значит на сервере что-то валится.
В success - вы проверяете бизнес-логику на true или false.
а в error - в принципе что ajax отработал.
Ясно все. У вас очевидно дело в dataType. Вы объявили dataType: json а в php-файле возвращаете в случае false - пустую строку. А это не json - поэтому попадаете в error. Верните к примеру:
```js
<?php echo '{}'; ?>
```
или
```js
<?php echo json_encode(false); ?>
```
Тогда будет всё гуд.
Evgeny Svirsky: У меня в итоге возвращается json массив, если запрос к бд успешен иначе просто false. Можно тогда не делать проверку на false в success?
У вас не совсем правильный подход. Разве если в базе пусто - это ошибка? Результат должен быть всегда true если не было exception-а в коде. а кол-во объектов - 0. А уже в js-е вы проверьте, если .length - 0, тогда не выводите ничего, иначе выведите.