#ruby-on-rails #axios
Вопрос:
Я пытаюсь отправить запрос на публикацию с веб-интерфейса с помощью Axios для регистрации пользователя.
handleSubmit(event) {
const { email, password, password_confirmation } = this.state;
let partnerCredentials = {
partner: {
email: email,
password: password,
password_confirmation: password_confirmation,
},
};
axios({
method: "post",
url: "http://localhost:3001/v1/registrations",
data: partnerCredentials,
headers: { "Content-Type": "multipart/form-data" },
})
.then(function (response) {
//handle success
console.log(response);
})
.catch(function (response) {
//handle error
console.log(response);
});
event.preventDefault();
}
Теперь я получаю ошибку в интерфейсном API Rails, когда мой интерфейс пытается ввести учетные данные партнера:
Processing by V1::RegistrationsController#create as HTML
Parameters: {"{"partner":{"email":"test@gmail.com","password":"asdf","password_confirmation":"asdf"}}"=>"[FILTERED]"}
HTTP Origin header (http://localhost:3000) didn't match request.base_url (http://localhost:3001)
Completed 422 Unprocessable Entity in 2ms (ActiveRecord: 0.0ms | Allocations: 471)
ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):
...
Вот мой контроллер:
module V1
class RegistrationsController < ApplicationController
protect_from_forgery with: :exception
skip_before_action :verfiy_authenticity_token, raise: false
def create
partner = Partner.create!(
email: params['partner']['email'],
password: params['partner']['password'],
password_confirmation: params['partner']['password_confirmation']
)
if partner
session[:partner_id] = partner.index
render json: {
status: created,
partner: partner
}
else
render json: { status: 500 }
end
end
private
def partner_params
params.require(:partner).permit(:email, :password, :password_confirmation)
end
end
end
Любая помощь, которую я могу найти для решения этой проблемы, будет очень признательна. Спасибо
Комментарии:
1. /Почему вы отправляете сообщение на порт 3001?
2. Если это предполагается, то вы выполняете запрос Перекрестного происхождения. Это то, что вы должны использовать github.com/cyu/rack-cors .