Как вернуть сообщение об ошибке?

Silentland, а тебе уже давно ответили.
Как отправить код ошибки?
Ответ:
PHP:
Header('HTTP/1.1 503 Service Unavailable')

Как отправить код и текст ошибки в теле запроса?
Ответ:
PHP:
{
    "errno": 2,
    "error": "Technical works",
    "data": ""
}
{
    "errno": 0,
    "error": "",
    "data": {
        mydata: 123
    }
}

Как отправить текст ошибки в заголовке?
Нет ответа...

а что случилось с node js и yii за которыми будущее?:)
У yii вторая версия во всю тестируется, скоро выйдет в продакшен, можно будет юзать. А за нодой очень далекое будущее. Без нормальных фреймворков боязно пересаживаться. Может Метеор всё исправит, кто знает...
 
Обрабатываю ответ сервера REST библиотекой из Ангуляра. Там есть функция запрашивающая весь массив данных и создающая на каждый элемент по ресурсу. Так вот, если в ответ приходит не массив, а строка ошибки, то она просто разбивается по буквам и получается бред

Угу, надо аккуратно работать с ошибками и заворачивать в json все ответы, и еще в nginx-е в error page 50x подложить на нужный локейшен json. :)

Вообще ангуляровский $http очень хочется взять и переписать.
 
Желательно response code спускать в тело ответа, чтобы не заставлять клиента парсить заголовки. Обычно так и делают кидая 200 Ok, а настоящий response_code в json. Тогда и nginx и прочее настраивать не надо будет как миниплюс :)
 
fixxxer
я понял, просто процитировал умные мысли из книжки по REST'ful API ;)
 
А что будет, если nginx не настроить? Просто json не распарсится, но код ошибки-то придет?

Что же это за задачи такие, что $http не справляется? Пока даже из $resource удается выжать то что надо
 
Как отправить текст ошибки в заголовке?
Текст ошибки - это уже content.... ведь ответ - документ, через header заполняется мета-информация, все остальное - контент
 
А что будет, если nginx не настроить? Просто json не распарсится, но код ошибки-то придет?
да. ну как то не хочется иметь мусор в респонсе

Что же это за задачи такие, что $http не справляется? Пока даже из $resource удается выжать то что надо

upload progress, например
 
Текст ошибки - это уже content.... ведь ответ - документ, через header заполняется мета-информация, все остальное - контент
Ну вот, значит ответ на третий вопрос: нельзя :-)

upload progress, например
Да, точно, они пока не сделали доступ к xhr объекту. Приходится своими силами пока: http://jsfiddle.net/danielzen/utp7j/
 
Удалились последние сообщения. Скорее всего из-за краха сервера. Восстановлю по памяти:

Писал:

fixxxer ответил:
да все равно для чего-нибудь с angular-ui рано или поздно jquery втащить придется, я в этом плане особо пуризмом не страдаю, главное тут

1) не трогать jquery вне директив
2) не лазить выше angular.element, то есть element.find(childSelector) но не $(selector)

-----------------
Следующий вопрос, как сделать, чтобы сервер отсылал подобные ошибки
<br />
<b>Parse error</b>: syntax error, unexpected '$res' (T_VARIABLE) in <b>W:\test\www\action.php</b> on line <b>128</b><br />
С кодом ошибки, а не с кодом 200?
 
Таких сообщений сервер НИКОГДА НИКУДА отсылать не должен!
 
В теории, при возникновении ошибки, пхп начиная с версии 5.3.с-чем-то должен отдавать 503 сам.
Но иногда это не работает. Но php-fpm работает железно - он для этого и создавался
 
В теории, при возникновении ошибки, пхп начиная с версии 5.3.с-чем-то должен отдавать 503 сам. Но иногда это не работает.
Вот-вот. В моем 5.4.16 не сработало. Видимо, настройки не те стоят... Будем надеяться, что провайдеры настраивают как надо.
 
Хех :)
Я уж забыл, когда хостинг себе не сам настраивал :)
 
Тут две стороны медали. Когда делаю простые сайты на хостинге за 100 руб., хочется чтобы сразу всё работало с любым сервером. А в серьезных проектах по-любому всегда самому приходится настраивать, это да :)
 
Следующий вопрос, как сделать, чтобы сервер отсылал подобные ошибки

С кодом ошибки, а не с кодом 200?

Вообще в этом случае начиная с 5.3.x должно быть всегда 50x. Был баг в xdebug-е, но его вроде исправили http://bugs.xdebug.org/view.php?id=587

В крайнем случае, можно в shutdown function проверять error_get_last.
 
fixxxer (и другие) писал выше что не жалуешь ангулярский $resource, например, из-за невозможности получить данные о прогрессе. Так и не понял, в чем проблема. Делаю загрузчик файлов https://github.com/tamtakoe/oi.file и ни разу не столкнулся с какими-то ограничениями в этом плане (сложно представить в каких еще ситуациях нужен детальный прогресс). Может быть я что-то не так делаю. Можешь посмотреть?
 
Почитал я тему, и полностью согласен с фанатом, он какой-то мозго-...коитусер
Идеально решение для вас:

PHP:
header("410 Gone");
setCookie("errorData", serialize(array("data" => 1, errorText => "бла-бла-бла")));

Почему ушёл? Вот вам:
Код:
http://www.youtube.com/watch?v=WxGS-2M6_5I
 
Сверху