jquery - 为什么我的代码执行错误请求错误 URI [object%20Object]?

标签 jquery ruby-on-rails ajax coffeescript

当复选框更改为更改资源“任务”上的 bool 属性“完成”时,我使用 jquery 触发 ajax 请求。我有关于 AJAX 部分的以下代码,但出现此错误 > 错误的 URI `/projects/1/tasks/[object%20Object]'

tasks.js.coffee

    $('#task_completed').bind 'change', (event) =>
      url = $('#task_completed').closest('form').attr('action')
      data = {}
      data.task = {}
      $.post({
        url: url
        data: data
        success: ->
          $('.task_headline').toggleClass('completed_task')
      })

task/show.html.erb

       <%= form_for [@project, @task], :remote => true do |f| %>
         <%= f.label :completed %>       
         <%= f.check_box :completed %> <!-- this automatically has the id="task_completed" -->
       <% end %> 

最佳答案

如果您不想指定数据,就不要指定数据。

    $('#task_completed').bind 'change', (event) =>
      url = $('#task_completed').closest('form').attr('action')

      $.post({
        url: url
        success: ->
          $('.task_headline').toggleClass('completed_task')
      })

此外,您忘记了 url:url 后面的逗号,这可能是必要的。

    $('#task_completed').bind 'change', (event) =>
      url = $('#task_completed').closest('form').attr('action')

      $.post({
        url: url,
        success: ->
          $('.task_headline').toggleClass('completed_task')
      })

如果仍然发生这种情况,您需要暂时将该函数替换为:

window.alert($('#task_completed').closest('form').attr('action'))

如果警报中显示[object%20Object],则您保存表单的位置出现问题。请注意,[object%20Object] 意味着您正在尝试打印一个未定义显式 toString() 的对象。这正是您尝试将 {} 转换为字符串时发生的情况。

不相信我?将以下内容复制到地址栏并按 Enter:

javascript:var test = {};window.alert(test.toString());

关于jquery - 为什么我的代码执行错误请求错误 URI [object%20Object]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10669241/

相关文章:

javascript - 如何运行使用 jquery.load() 加载的页面中包含的 javascript 代码

jQuery 如何在依赖下拉列表中找到最后启用的子项的 val

ruby-on-rails - Rails 中的递归模型

php - 如何从 MySQL/jQuery ajax 调用中清空 GET 值

javascript - 如何将 Three.js 中的网格仅在 X 和 Y 上居中

javascript - 使用 jQuery 从下拉列表中提取信息并使用该信息创建一个 div

ruby-on-rails - 谷歌搜索 API ruby

ruby-on-rails - ruby /rails : alias_method practices

javascript - 更改 window.location.href 时不会将页面滚动到底部

javascript - 如何在jquery中比较两个格式为 "dd-mm-yyyy hh:mm"的日期