Проблема Я работаю над простой страницей входа.Из моего скрипта модели представления я вызываю другой скрипт, который обрабатывает вызовы моего API.
Короче говоря, я не получаю ожидаемые данные, которые я хочу, это просто строка токена (которая указывает логинбыл успешным).
Вот макет Json, который я использую
[
{
"id":1,
"firstName":"John",
"lastName":"Smith",
"email":"john@gmail.com",
"token" : "65456j4h56j4h6gjk4g6k7g6k5g7jh567"
}
]
My View Model Script
import {user} from "../shared/user-service.js";
import {token} from "../shared/token-service.js";
// Login View Model
var LoginViewModel = function () {
self = this;
this.token = ko.observable();
this.email = ko.observable("john@gmail.com");
this.password = ko.observable("12345");
self.submit = function () {
var oUser = {
email: self.email(),
password: self.password()
};
// I am not getting back desired results here
var loginResponse = user.login(oUser);
alert(loginResponse.token);
}
}; // End View Model
ko.applyBindings(new LoginViewModel());
и, наконец, вот мой файл пользовательского сервиса:
let user = {
getUserSession: function () {
var user = JSON.parse(sessionStorage.getItem('user'));
console.log(`Getting User from Session: value = ${user} `);
return user;
},
setUserSession: function (objUser) {
var user = JSON.stringify(objUser);
sessionStorage.setItem("user", user);
console.log(`Setting User in Session: value = ${user} `);
},
login: function (objUser) {
return fetch('../api/user/login.json', {
method: "GET",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
})
.then((response) => response.json())
.then((responseData) => {
console.log(responseData);
return responseData;
})
.catch(error => console.warn(error));
}
};
/* Helper Functions */
function handleErrors(response) {
if (!response.ok) {
console.log(JSON.stringify(response));
throw Error(response.statusText);
}
return response;
}
export {
user
};
Снимок экрана Console.Log Data ![Login Screenshot](https://i.stack.imgur.com/2Uwfe.png)
и вот значение оповещения из моего login-view-model.js ...
Неопределенный результат ![Undefined](https://i.stack.imgur.com/rdMUM.png)
По сути, Я просто хочу войти в систему пользователя .Если он действителен, возьмите токен, который возвращает API, и сохраните его в сеансе.Если токен не был возвращен, просто предупредите.
Я не знаю, почему это так сложно для меня.Я действительно был бы признателен за некоторые рекомендации по этому вопросу.
О, конечно, вы видите, что я просто тестирую эти ложные данные.Как только я получу эту функцию, я преобразую ее в POST и реальный URL.
Спасибо, что прочитали это.
John