Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.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
Ruby on rails 向用户发布请求/登录是否返回HTML而没有响应?_Ruby On Rails_Reactjs_Authentication_Devise - Fatal编程技术网

Ruby on rails 向用户发布请求/登录是否返回HTML而没有响应?

Ruby on rails 向用户发布请求/登录是否返回HTML而没有响应?,ruby-on-rails,reactjs,authentication,devise,Ruby On Rails,Reactjs,Authentication,Devise,我正在尝试让Desive与我的前端一起工作。目前,我已经在前端设置了一个AuthenticationService来让用户登录。这是我第一次用React设置Desive,所以我肯定我遗漏了一些东西,但我似乎不知道是什么 图中显示了我在控制台记录来自API的响应时得到的结果 下面是我的身份验证服务在前端的样子 class AuthenticationService { async signIn(values) { return axios .get(`/users/sig

我正在尝试让Desive与我的前端一起工作。目前,我已经在前端设置了一个AuthenticationService来让用户登录。这是我第一次用React设置Desive,所以我肯定我遗漏了一些东西,但我似乎不知道是什么

图中显示了我在控制台记录来自API的响应时得到的结果

下面是我的身份验证服务在前端的样子

class AuthenticationService {
  async signIn(values) {
    return axios
      .get(`/users/sign_in`, { user: values })
      .then((response) => response.data)
  }
}

export default new AuthenticationService()
我有一个空的Users::SessionController,我的前端看起来像下面的代码。我正在使用Formik提交表单,提交表单时的值是正确的,并且我当前只是控制台。记录响应以了解从AuthenticationService传回的数据

<Formik
  initialValues={{ email: "", password: "" }}
  onSubmit={async (values) => {
    console.log("values", values)
    try {
      const response = await AuthenticationService.signIn(values)
      console.log("success?", response.success)
      if (response.success) {
        window.location.href = response.redirect
          ? console.log("response redirect")
          : console.log("/admin")
      }
    } catch {
      console.log("didn't work")
    }
  }}
>

Desive不支持API模式。

你可能想试试gem

或者编写自定义控制器以正确处理API请求。 提示:如果您使用
super
,您将以html模板响应或重定向到登录页面。所以不要使用它们。

Rails.application.routes.draw do
  devise_for :users

  # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
  root to: "api/dashboard#home"

  namespace :api, defaults: { format: :json } do
    resources :dashboards
    resources :cookbooks
    resources :ingredients
    resources :recipes
  end
end