У меня проблема с маршрутизацией с Axios и рельсами

#ruby-on-rails #axios

Вопрос:

Я пытаюсь сделать простой запрос ajax с Rails и Axios, но, похоже, у меня проблема с маршрутизацией

Мой запрос Ajax выполняется методом POST

 axios.post('/post', {
                        title: title,
                        pseudo: pseudo,
                        text: text,
                        topic: topic
                    })
                    .then(res => console.log(res))
                    .catch(e => console.log(e))

             }
 

Мой контроллер имеет respond_to

 respond_to do |format|
       format.json { render json: {result: 'ok'} }
end

 

Но рельсы, обработанные не тем контроллером и не тем методом, я ожидал Processing by PostController#create as JSON , что нет Processing by MainController#default as HTML

 Started GET "/post?title=amp;text=            amp;pseudo=" for 127.0.0.1 at 2021-03-16 12:29:23  0100
Processing by MainController#default as HTML
  Parameters: {"title"=>"", "text"=>"            ", "pseudo"=>"", "topic"=>""}
  Rendering main/default.html.erb within layouts/application
  Post Load (1.4ms)  SELECT "posts".* FROM "posts" WHERE (topic = '') ORDER BY "posts"."updated_at" DESC LIMIT $1 OFFSET $2  [["LIMIT", 12], ["OFFSET", 0]]
  ↳ app/views/main/default.html.erb:40
  Rendered main/default.html.erb within layouts/application (Duration: 11.2ms | Allocations: 1178)
[Webpacker] Everything's up-to-date. Nothing to do
[Webpacker] Everything's up-to-date. Nothing to do
Completed 200 OK in 192ms (Views: 188.0ms | ActiveRecord: 1.4ms | Allocations: 11445)
 

Вот мои рельсовые маршруты

  Prefix Verb   URI Pattern                                                                               Controller#Action
                                      GET    /                                                                                        main#default
                                      GET    /:topic(.:format)                                                                      main#default
                    comment_index POST   /comment(.:format)                                                                   comment#create
                      new_comment GET    /comment/new(.:format)                                                               comment#new
                          comment GET    /comment/:id(.:format)                                                               comment#show
                           post_index POST   /post(.:format)                                                                          post#create
                             new_post GET    /post/new(.:format)                                                                      post#new
                                      GET    /:topic/:post(.:format)                                                                post#show
 

Комментарии:

1. Попробуй axios.post('/post.json'...)

2. @razvans тот же результат, но когда я выполняю «код axios» непосредственно в веб-консоли навигатора, он работает

3. Я также использую Vue.js Я думаю, что проблема исходит оттуда

4. Пожалуйста, обновите заголовки запросов, выполните «поднять запрос.заголовки.проверка» в действии контроллера.