Перенаправление в обещании запроса Ax ios DELETE использует DELETE вместо GET - PullRequest
0 голосов
/ 17 марта 2020

Я ожидаю, что смогу использовать window.location = '/' в обратном вызове .then, который использует GET вместо DELETE, когда исходный запрос DELETE.

Вот что я имею в виду :

axios.delete('/logoff')
   .then(() => {
     window.location = '/signin';
   })

После успешного запроса DELETE можно подумать, что запрос, который будет перенаправлен на /signin, будет выполнен как GET - однако он будет выполнен как DELETE как будто опция липкая.

1 Ответ

0 голосов
/ 17 марта 2020

Оказывается, проблема была в моей системе аутентификации на стороне сервера, а не на стороне клиента.

Я не думаю, что это будет проблемой для кого-либо не , использующего Devise для Rails вместе с клиентской стороной AJAX вызов для выхода.

Мое решение состояло в том, чтобы изменить конфигурацию устройства, чтобы использовать GET вместо DELETE запросов на выход:

  # config/initializers/devise.rb
  ...
  # The default HTTP method used to sign out a resource. Default is :delete.
  config.sign_out_via = :get # this was changed from :delete to :get

Сейчас Мой клиентский выходной вызов корректно перенаправляет на страницу входа, потому что оба метода HTTP для выхода и HTTP для входа - GET.

...