无法从我的Rails服务器获得json响应

时间:2020-09-09 19:59:44

标签: ruby-on-rails reactjs

我有一个Rails服务器,我正在尝试从React客户端发出获取请求。我想在每次发表新评论时获取帖子的评论。

posts_controller.rb

  # GET /post/1
  # GET /post/1.json
  def show
    @post = Post.kept.friendly.find(params[:id])
    @comments = @post.comments.kept.order(created_at: :desc)
  end

我的React组件

  useEffect(() => {
    fetch('/posts/post-title')
      .then((res) => {
        console.log("res", res);
      })
      .catch((err) => {
        console.log("err", err);
      });
  }, []);

结果

res Response {type: "basic", url: "http://localhost:3000/posts/post-title", redirected: false, status: 200, ok: true, …}

我打开了该响应,但没有看到任何注释json。我尝试做res.json(),但得到undefined

我做错了什么?

1 个答案:

答案 0 :(得分:0)

将您的表演动作更改为此

def show
  @post = Post.kept.friendly.find(params[:id])
  @comments = @post.comments.kept.order(created_at: :desc)
  render json: @comments
end

和您的JS到此

useEffect(() => {
  fetch('/posts/post-title')
    .then(res => res.json())
    .then((post) => {
      console.log(post)
    })
    .catch((err) => {
      console.log("err", err);
    });
}, []);