У меня есть API-интерфейс RoR, и я создаю страницу реакции с редукцией. Я вызываю задачи моего пользователя. Вот как это работает до сих пор: когда он регистрируется, я сохраняю ключ токена в состоянии, а затем использую его для вызова API, чтобы получить мои задачи (индекс). У меня есть мое действие здесь:
def index
@todos = current_user.todos
json_response(@todos)
end
Это блок, который выходит из строя:
loginHandler() {
const { email, password } = this.state;
const { login, tokenize, token } = this.props;
axios.post('http://localhost:3001/auth/login', {withCredentials: true,
email: email, password: password})
.then(response => {
login(true);
tokenize(response.data.auth_token);
axios.get('http://localhost:3001/todos', {Authorization: token}) // Error occurs
.then(response => {
console.log(response);
}).catch(error => console.log(error));
}).catch(error => console.log(error));
}
Где токенизация и вход в систему - это действия, переданные в Redx. Ошибка во втором вызове ax ios, где я получаю 422 необработанных объекта. Я сделал ручной тест с http ie из моего терминала, и там он работает . Также отладьте мое действие todos # index, и это ошибка со стороны сервера:
AbstractController::DoubleRenderError (Render and/or redirect were called multiple times in this action. Please note that you may only call render OR redirect, and at most once per action. Also note that neither redirect nor render terminate execution of the action, so if you want to exit an action after redirecting, you need to do something like "redirect_to(...) and return".).
Мой RoR равен 5.2 и ruby 2.6.3. Логин работает, регистрация работает, но метод get для todos не работает ТОЛЬКО в реакции. В http ie из моего терминала это работает. Я некоторое время боролся с этим, и ни один ресурс онлайн не был действительно полезен, что заставило меня подумать, что там есть какая-то опечатка, которую я не видел.