Может ли кто-нибудь дать информацию о том, как работает $ http в отношении JSON, обнаруживает ли он формат вывода и автоматически преобразует его в JSON при успешном выполнении или я должен обрабатывать это вручную?
Если это поведение по умолчанию, что произойдет, если он не сможет преобразовать вывод в JSON?
Контекст: В этом случае, когда мой веб-службы не удалось из-за ошибки соединения SQL, но success
еще получил под названием
Мой $ HTTP, связанные кодовая последовательность:
this.$http.defaults.headers.common["Accept"] = "application/json";
this.$http.get(common.Config.getEndPoint() + "/sync", {params:params})
.success(function(data, status, headers, config) {
self.onResult(data);
})
.error(function(data, status, headers, config){
console.log(data)
});
Ошибка - (потому что мой MySql сервер не был запущен, это может быть исправлено, но моя цель - грациозно обработать эту ошибку на интерфейсе, если это произойдет, ищет хорошую стратегию как на бэкэнде, так и на внешнем интерфейсе)
SQLSTATE[HY000] [2002] Connection refused<br />
<b>Fatal error</b>: Call to a member function prepare() on a non-object in
PHP строка, которая генерировала ошибку
$statement = $this->connection->prepare("SELECT id, username, password FROM `user` WHERE username = :username AND suspended = 0 AND deleted = 0");
обучение: успеха запускаемый для любых кодов статуса 2xx, в то время как ошибка работает для любого 1xx, 3xx, 4xx & 5xx
Определяется ли сервером заголовок 'Content-Type', когда он отвечает на запрос? Если нет, то вам нужно сказать '$ http', чего ожидать. – Brett
Какой код состояния возвращается из веб-службы? –
@NeilSmith. Я отредактировал код, чтобы ответить на ваш вопрос. Дело в том, как изящно справиться с этой ситуацией? – user2727195