【问题标题】:Why is my code doing a Bad Request bad URI [object%20Object]?为什么我的代码执行错误请求错误 URI [object%20Object]?
【发布时间】:2012-05-27 00:12:17
【问题描述】:

当复选框更改为更改资源“任务”上的布尔属性“已完成”时,我正在使用 jquery 触发 ajax 请求。我有以下关于 AJAX 部分的代码,但我收到此错误 > bad 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 %> 

【问题讨论】:

    标签: jquery ruby-on-rails ajax coffeescript


    【解决方案1】:

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

        $('#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());
    

    【讨论】:

    • @oFca:因为找不到动作,能不能给我们看看你生成的HTML?
    • 但是当我将这个 window.alert 放入 .bind 时,它会显示“projects/1/tasks/4”,这就是我的资源和它们的 ID。现在呢?
    • @minitech:它可能是可选的,但我对 CoffeeScript 的了解并不多。但我知道,如果你添加它,你应该是安全的。
    猜你喜欢
    • 2021-05-19
    • 1970-01-01
    • 2012-10-04
    • 2015-11-13
    • 1970-01-01
    • 2022-12-03
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    相关资源
    最近更新 更多