ruby-on-rails 如何通过React JS使用fetch从Rails API中获取头部?

b91juud3  于 2023-08-08  发布在  Ruby
关注(0)|答案(1)|浏览(118)

我正在整理一个需要登录的个人项目。
该项目在react js和rails API中。
登录我正在使用design。
默认情况下,当您登录时,它返回access-token和client。
但我无法在React中访问这些令牌。

const url = `${process.env.REACT_APP_API_URL}/auth/sign_in`;

const requestOptions = {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify(form)
};

const res = await fetch(url, requestOptions).then(res => res.json());

if(res.errors){
  for(let i = 0; i<res.errors.length; i++){
    setFormErrors(form_errors => [...form_errors, res.errors[i]]);
  }
}else{
  console.log(res);
  // window.location.replace('http://localhost:3002/');
}

字符串
我需要它们在未来的请求服务器中使用。
我完全不知道该怎么办。
我不知道是否有办法访问头中的这些令牌。
或者突然间我可以改变设备以身体React发送这些数据。
哪一个是最好的选择?
帮帮我,谢谢

krcsximq

krcsximq1#

我找到了解决办法。我不知道这是不是最好的解决方法,但现在解决了我的问题。
我在config/application.rb中添加该代码

config.middleware.insert_before 0, Rack::Cors do
      allow do
        origins 'localhost:3002'
        resource "*",
          :headers => :any,
          :expose  => [
            "client",
            "access-token"],
          :methods => [:get, :post, :options, :delete, :put, :head]
      end
    end

字符串
伙计,所以...这解决了我的问题,但就像我说的,我不知道这是不是最好的方法。
如果有人能解释正确的方式,请描述。
拥抱大家

相关问题