ruby-on-rails - Fetch API 向 Rails 服务器发出请求

标签 ruby-on-rails cookies fetch-api

使用 fetch API 调用 Rails 服务器会导致一些使用 ajax 时不会出现的问题。

  1. CSRF,使用 jquery,rails gem 自动将 CSRF token 放入请求中,有没有办法通过 fetch 实现类似的效果?

  2. session cookie 不会持久保存页面重新加载。我使用 session token 来存储当前用户 session 并登录,然后刷新会在应该保留 session 时删除 session 。

无法找到有关此主题的任何资源,并且我在通过 ajax 进行调用时成功地使用了完全相同的代码,所以我知道问题与我切换到 fetch 有关

最佳答案

  1. 我现在正在努力解决这个问题。当我弄清楚时,我会更新这个答案。但基本思想是您需要传递“X-CSRF-Token” header 。如果您使用 jQuery,则可以使用此代码获取 csrf token :

    $('meta[name=csrf-token]').attr('content')
    
  2. 默认情况下,fetch 不包含 cookie。您必须传递此选项:credentials: 'same-origin'。看这个问题:Fetch API with Cookie

关于ruby-on-rails - Fetch API 向 Rails 服务器发出请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39086715/

相关文章:

javascript - Ruby on Rails : Javascript: prototype. js:3483 未捕获类型错误:无法调用 null 的方法 'getElementsByTagName'

jquery - 如何在 Rails 4 中动态加载数据

javascript - 浏览器扩展(例如 “memonic”)如何将数据与特定用户相关联?

javascript - 使用 fetch API 发生意外的输入结束错误

javascript - 如何在reactJS中使用id从API获取数据?

javascript - 在某些浏览器中发出范围请求

html - Bootstrap 嵌套下拉列表

使用 Rails ActiveRecord 的 MySQL REGEXP

wordpress - WordPress 中的 $current_user 为空

javascript - 如果需要,Javascript 如何将网站用户重定向回登录页面?