在node / react中有一个`new Request`,如何用GET请求传递params?

时间:2017-06-06 14:36:06

标签: ruby-on-rails node.js reactjs

我在reactjs应用程序中有以下API调用:

  static getAllSkills(title_id) {
    const request = new Request(`http://localhost:4300/api/v1/job_title_skills`, {
      method: 'GET',
      headers: new Headers({
        'Content-Type': 'application/json'
      }),
      body: JSON.stringify({title_id: title_id})
    });

    return fetch(request).then(response => {
      return response.json();
    }).catch(error => {
      return error;
    });
  }

哪个指向Rails端点,它期望param title_id如此:

  def index
    @skills = Skill.where(id: params[:title_id])
    ....
  end

控制器期待GET请求,但是上面提到了以下JS控制台错误:

Uncaught TypeError: Failed to construct 'Request': Request with GET/HEAD method cannot have body.

构造Request并将参数传递给API的正确方法是什么?感谢

1 个答案:

答案 0 :(得分:2)

我认为您的api中的网址正在等待title_id或许像:

api/v1/job_title_skills/:title_id

因此,您可以在提出请求时将其附加到您的网址中:

static getAllSkills(title_id) {
  const request = new Request(`http://localhost:4300/api/v1/job_title_skills/${title_id}`, {
    headers: new Headers({
      'Content-Type': 'application/json'
    })
  });

  return fetch(request).then(response => {
    return response.json();
  }).catch(error => {
    return error;
  });
}