Магистральный и проверяющий ответ loggin

#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-запрос