У меня есть веб-приложение, которое вызывает PHP таким образом:Что лучше всего подходит для отправки ответа ajax?
var jqxhr =
$.getJSON(url)
.done(function(data, status) {
if(status == 'success') {
rv = true;
// initialise the user object
app.user = new User(data);
// post login-processing
app.postLogin();
} else {
// login failed
console.log("autologin failed!");
}
})
.fail(function() {
console.log("autologin fail");
}); // end var jqxhr =
и мне интересно, что принимается в качестве наилучшей практики в сценарии PHP?
Например, если все работает хорошо, мой PHP возвращает:
header('Content-type: application/json; charset=utf-8');
print json_encode($row);
Если есть неожиданная ошибка, например, плохой SQL, мой PHP возвращает:
header('HTTP/1.1 500 Internal Server Error');
header('Content-Type: application/json; charset=UTF-8');
etc.
перед вызовом умереть (). Затем я обрабатываю это в .fail().
Но что, если я хочу вернуть ОЖИДАЕМУЮ ошибку, например «Неверное имя пользователя или пароль»? Можно ли использовать «Внутреннюю ошибку сервера», или я должен использовать какой-то протокол ответа json, чтобы сообщить об ошибке javascript и искать его в .done()?
Любой совет, который очень ценится.
Благодаря
Mini
Состояние скважины 500 обычно означает, что на сервере произошло что-то плохое. Существуют более значимые [** коды состояния **] (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html), например, вы можете использовать 401, поскольку это неавторизованный код состояния, который указывает на запрос на то, что требует аутентификации или аутентификации, не удался –
«Недопустимое имя пользователя или пароль» не является внутренней ошибкой сервера, поэтому ** Нет **. – Bergi