Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Axios删除请求中的重定向承诺使用DELETE而不是GET_Javascript_Axios - Fatal编程技术网

Javascript Axios删除请求中的重定向承诺使用DELETE而不是GET

Javascript Axios删除请求中的重定向承诺使用DELETE而不是GET,javascript,axios,Javascript,Axios,我希望能够在中使用window.location='/'。然后当原始请求是DELETE时,使用GET而不是DELETE的回调 我的意思是: axios.delete('/logoff') .then(() => { window.location = '/signin'; }) 您可能会认为,在成功的删除请求之后,重定向到/signin的请求将作为获取执行-但是,它作为删除执行,就好像选项是粘性的一样。结果表明问题出在我的服务器端身份验证系统中,而不是客户端 我认为

我希望能够在
中使用
window.location='/'
。然后当原始请求是
DELETE
时,使用
GET
而不是
DELETE
回调

我的意思是:

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

您可能会认为,在成功的
删除
请求之后,重定向到
/signin
的请求将作为
获取
执行-但是,它作为
删除
执行,就好像选项是粘性的一样。

结果表明问题出在我的服务器端身份验证系统中,而不是客户端

我认为这对任何不使用Desive for Rails和基于AJAX的客户端注销调用的人来说都不会是一个问题

我的解决方案是修改Desive的配置,使用
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

我不建议使用GET进行注销。这可能是因为签出路由在路由文件中被覆盖。如果您发布相关的路由,这将非常有用。这是在Desive文档中装载路由的默认配置。这一定是Desive路由本身的一个问题,在Github上提出这个问题可能比在这里更好。