Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 参数在GET请求中作为[object]发送,Rails不接受_Javascript_Jquery_Ruby On Rails_Ruby_Ajax - Fatal编程技术网

Javascript 参数在GET请求中作为[object]发送,Rails不接受

Javascript 参数在GET请求中作为[object]发送,Rails不接受,javascript,jquery,ruby-on-rails,ruby,ajax,Javascript,Jquery,Ruby On Rails,Ruby,Ajax,我试图执行GET请求以返回单个“项目”,但当我将参数发送到Rails时,它们被拒绝,因为它显示为[object object],而不是Rails期望的参数 这对我来说很有用,所以我有点迷路了。我应该能够输入一个数字,它代表一个项目ID,它应该返回该项目。下面是我输入ID的index.html代码: <form id="getProject" class="form-group"> <div class="form-group"> <input class

我试图执行GET请求以返回单个“项目”,但当我将参数发送到Rails时,它们被拒绝,因为它显示为[object object],而不是Rails期望的参数

这对我来说很有用,所以我有点迷路了。我应该能够输入一个数字,它代表一个项目ID,它应该返回该项目。下面是我输入ID的index.html代码:

<form id="getProject" class="form-group">
  <div class="form-group">
    <input class="form-control" type="text" name="project[id]" placeholder="get one project id">
  </div>
  <button type="submit" class="btn btn-default" id="get-project">get one project</button>
</form>
onGetProject获取数据并将其发送到API调用:

const onGetProject = function (event) {
  event.preventDefault()
  const data = getFormFields(this)
  api.getProject(data)
    .then(ui.getProjectSuccess)
    .catch(ui.getProjectFailure)
}
API调用:

const getProject = (id) => {
  event.preventDefault()
  return $.ajax({
    url: config.apiOrigin + '/projects/' + id,
    method: 'GET',
    headers: {
      Authorization: 'Token token=' + store.user.token
    }
  })
}
这是终端中显示的内容:

Started GET "/projects/[object%20Object]" for 127.0.0.1 at 2017-06-27 
22:03:35 -0400
Processing by ProjectsController#show as */*
  Parameters: {"id"=>"[object Object]"}
我编写了一个脚本,该脚本应该针对单个ID执行GET请求,但它返回的是所有内容,而不是我希望Rails执行的“show”:

脚本:

API="${API_ORIGIN:-http://localhost:4741}"
URL_PATH="/projects/${ID}"
curl "${API}${URL_PATH}" \
  --include \
  --request GET \
  --header "Content-Type: application/json" \
  --header "Authorization: Token token=$TOKEN" \
  --data '{
    "project": {
      "id": "'"${INTEGER}"'"
    }
  }'
我在后台使用RubyonRails,我能够成功地执行一个GET请求,该请求返回所有项目及其嵌套任务的索引,正如预期的那样。但是,我无法让单个get请求工作,并且不确定我的代码可能有什么问题


如果您需要任何其他代码或信息,请告诉我。谢谢你的帮助

由于ID是一个对象,我需要使用
ID.project.ID
更明确地访问该值

一旦我在API调用中替换了它,它就成功地执行了,并且返回了我请求的单个项目。以下是工作代码:

    const getProject = (id) => {
      event.preventDefault()
      return $.ajax({
        url: config.apiOrigin + '/projects/' + id.project.id,
        method: 'GET',
        headers: {
          Authorization: 'Token token=' + store.user.token
        }
      })
    }

谢谢你,帕特里克·埃文斯

由于ID是一个对象,我需要使用
ID.project.ID
更明确地访问该值

一旦我在API调用中替换了它,它就成功地执行了,并且返回了我请求的单个项目。以下是工作代码:

    const getProject = (id) => {
      event.preventDefault()
      return $.ajax({
        url: config.apiOrigin + '/projects/' + id.project.id,
        method: 'GET',
        headers: {
          Authorization: 'Token token=' + store.user.token
        }
      })
    }

谢谢你,帕特里克·埃文斯

id
是一个对象,您能显示
JSON.stringify(id)
print的功能吗?当然!它打印:
{“project”:{“id”:“2”}
您有:
'/projects/'+id
,如果
id
是要运行函数的对象,因为它需要是字符串才能连接它。这就是为什么您会得到
[object object]
。您可能需要访问您的值,如
id.project.id
,或调用getProject,如
getProject(data.project.id)
,但需要了解
getFormFields
是如何构建返回的数据的啊,就是这样,Patrick!我只需要在我的API调用中添加
project.id
const getProject=(id)=>{event.preventDefault()return$.ajax({url:config.apiorigen+'/projects/'+id.project.id method:'GET',headers:{Authorization:'Token Token='+store.user.Token}})
获取成功,现在开始使用手柄渲染,并确定如何显示“project”对象附带的嵌套“tasks”数组。非常感谢你的帮助,帕特里克
id
是一个对象,您可以显示
JSON.stringify(id)
print的功能吗?当然可以!它打印:
{“project”:{“id”:“2”}
您有:
'/projects/'+id
,如果
id
是要运行函数的对象,因为它需要是字符串才能连接它。这就是为什么您会得到
[object object]
。您可能需要访问您的值,如
id.project.id
,或调用getProject,如
getProject(data.project.id)
,但需要了解
getFormFields
是如何构建返回的数据的啊,就是这样,Patrick!我只需要在我的API调用中添加
project.id
const getProject=(id)=>{event.preventDefault()return$.ajax({url:config.apiorigen+'/projects/'+id.project.id method:'GET',headers:{Authorization:'Token Token='+store.user.Token}})
获取成功,现在开始使用手柄渲染,并确定如何显示“project”对象附带的嵌套“tasks”数组。非常感谢你的帮助,帕特里克!!