#javascript #php #backbone.js
#javascript #php #backbone.js
Вопрос:
Я использую bacbone в первый раз. И я пытаюсь войти в систему, есть php.code
$data = json_decode(file_get_contents('php://input'));
if ($data) {
$name = $data->{'uname'};
$passwd = $data->{'passwd'};
echo ($name == "myname" amp;amp; $passwd == "mypass") ? "Login success" : "Wrong name or password";
}
И магистральный код
var modelLogin = Backbone.Model.extend({
url: 'login.php'
});
modelLogin.save({
uname: "myName",
passwd: "myPassww",
});
Как увидеть (например, с помощью alert или console.log) слова «Успешный вход в систему» или «Неправильное имя или пароль»?
Спасибо!
Ответ №1:
Магистраль может помочь вам в этом.
Каждый запрос к серверу, использующий backbone.model, использует из-за jquery (ajax). Так что использование Backbone или Jquery в этом случае не имеет никакого значения
//Inside your model
LoginUser:->
@fetch(
success:=>
trigger 'authenticated'
error:=>
trigger 'invalidUser'
)
Старайтесь не использовать save для аутентификации пользователя, используйте save только при публикации (сохранении данных) на сервере.
Лучшим подходом в этом случае может быть получение содержимого на сервер и возврат идентификатора пользователя или что-то о пользователе, если логин и пароль пользователя верны.
Если вы хотите узнать код состояния, возвращаемый с сервера, вы можете получить его из fetch . Вот так:
//Model
LoginUser:->
result = @fetch(
success:=>
trigger 'authenticated'
error:=>
trigger 'invalidUser'
)
больше информации здесь http://backbonejs.org/#Model-fetch
Ответ №2:
Плохая идея использовать магистраль модели для этой операции, поскольку ответ от сервера не содержит информации для заполнения модели. В вашем случае просто используйте Ajax-запрос