要解决Axios在Rails API后端上的POST/login请求无法正常工作的问题,您可以尝试以下几个解决方法:
config/routes.rb文件中,您可以添加以下路由配置:post '/login', to: 'sessions#create'
然后,在app/controllers/sessions_controller.rb文件中,您可以添加以下代码来处理登录请求:
class SessionsController < ApplicationController
def create
user = User.find_by(email: params[:email])
if user && user.authenticate(params[:password])
# 登录成功
session[:user_id] = user.id
render json: { status: 'success', message: 'Logged in successfully' }
else
# 登录失败
render json: { status: 'error', message: 'Invalid email or password' }, status: 401
end
end
end
请根据您的实际情况进行相应的调整。
axios.post('/login', {
email: 'user@example.com',
password: 'password123'
})
.then(response => {
// 登录成功处理逻辑
console.log(response.data);
})
.catch(error => {
// 登录失败处理逻辑
console.error(error);
});
请确保您提供了正确的登录凭据(email和password),并处理登录成功和失败的响应。
rack-cors gem来处理CORS配置。在Gemfile中添加以下依赖:gem 'rack-cors'
然后,在config/application.rb文件中,您可以添加以下配置:
config.middleware.insert_before 0, Rack::Cors do
allow do
origins '*' # 允许所有来源
resource '*', headers: :any, methods: [:get, :post, :put, :patch, :delete, :options, :head]
end
end
请根据您的实际需求对CORS配置进行相应的调整。
通过以上几个解决方法,您应该能够解决Axios在Rails API后端上的POST/login请求无法正常工作的问题。如果问题仍然存在,请检查您的代码和错误日志,以获取更多的调试信息。