当前位置: 首页 > 知识库问答 >
问题:

不发送参数

庄瀚玥
2023-03-14

我有一个主干模型,我正试图销毁它,但没有随请求发送任何参数,因此服务器返回一个“Delete 404 not found”错误。

我承认我的结构有点奇怪,因为我正在根据项目是否已经在列表中创建/销毁它们。

var list_item = new MyApp.Models.ListItem({item_id: this.model.id, group_id: this.model.group_id});

    if($(e.currentTarget).hasClass('add')){

            list_item.save(list_item, { 
                success: function(response){
                     this.model.attributes.addedtolist_id = response.id
                     console.log(this.model);
                },
                error: function(){
                     alert('could not save item');
                }
           });
    } else if($(e.currentTarget).hasClass('remove')) {
         list_item.id=this.model.addedtolist_id;
         list_item.attributes.id = this.model.addedtolist_id;
         console.log(list_item);
         list_item.destroy({
             success: function(){
                alert('delete');
             },
             error: function(){
               alert('could not uncheck');
            }
   });
}

销毁前列表\u项的控制台输出为


_escapedAttributes: Object
_previousAttributes: Object
_setting: false
attributes: Object
 id: 2
 item_id: 66
 group_id: 64
__proto__: Object
cid: "c23"
id: 2
__proto__: q

但是,当我查看与delete请求一起发送的头时,我没有发送任何参数。

-----------------------正在发送更新参数,仍返回404--------------

根据Yaroslav的建议,我已经在销毁方法中添加了一个头,但是我的rails控制器仍然返回一个DELETE 404未找到的错误。我只是想在毁掉它之前归还这个列表,以确保我得到了正确的。

我的控制器是


 def destroy
   listitem = Listitem.find(params[:id])
   return render :json => listitem
 end

共有3个答案

刁星渊
2023-03-14
list_item.destroy( **l** {
  success: function(){
  alert('delete');
}, ... );

这是问题的第一位吗?

邓昀
2023-03-14

您希望发送什么参数?Destroy仅通过url发出http删除请求,默认情况下不包含正文或任何附加头。params参数传递给jquery ajax函数,因此您可以在那里指定头:

model.destroy({
...
    headers : {
        your_header : 123
    }
})
韩嘉胜
2023-03-14

我猜您正在将模型中的url设置为字符串:

Backbone.Model.extend({
    url: '/list_items',
    //...
});

这将告诉主干网使用/list\u items作为所有操作的URL。您应该使用以下函数:

url: function() { return '/list_items/' + encodeURIComponent(this.id) }

或者使用带有urlRoot的字符串,让默认的url函数添加id

urlRoot: '/list_items'
 类似资料:
  • 我正在尝试使用Chrome扩展Postman测试一个简单的PHP页面。当我发送URL参数时,脚本运行良好(例如变量在参数中可用)。当我将它们作为参数发送时,参数仅包含。 剧本: 我错过了什么?

  • 我有REST API。我在找客户。我将spring security配置为通过rest服务进行身份验证。我的REST API控制器 当我用postForObject调用我的API时,API的控制器中没有接收到任何参数。请给我一些建议,如何使它发送数据到API。多谢了。

  • 问题内容: 我遇到的问题是,当我以极低的频率(<2%)使用jquery ajax post时,post参数永远不会到达服务器。我确实在访问日志中看到了发帖请求。它似乎仅在IE上发生(我在日志中的7、8和9上已经观察到了)。 当我将呼叫从“发布”类型切换为“获取”类型时,问题就消失了。 有没有人见过这种奇怪的行为在IE?谢谢! 我已经在各种ajax调用中看到了这一点,但这是一个典型的例子: 更新 :

  • 我有下面的代码(谷歌的凌空库)向我的php服务器发送POST请求并获取信息。我没有在php中检查isset($\u POST['id')就尝试了代码,代码运行良好。当我开始检查时,php将跳过if语句并转到else,这意味着代码没有正确发送参数。我怎样才能解决这个问题? 我还尝试了以下代码: 但是我仍然得到同样的结果。

  • 问题内容: 我有一个用于更新数据库表的对象,但是它不能正确解释我的空值。 这是SQL: 我已经尝试过像这样可以为空的null合并参数,但是我没有取得任何成功。除非另有说明,否则所有参数均为字符串: 我得到这样的异常: 在将每个参数添加到SqlCommand对象以设置DbNull.Value(如果参数值为null)之后,我还尝试遍历每个参数,如下所示: 但是,这种方法导致异常: 将空参数传递给a的最

  • 在我的android应用程序中,我发送了一个截击POST请求,但它不起作用。相反,它发送的是空参数。 如果我输入url(https://blogurl.com/wp-json/wp/v2/comments?post=20081 Postman为JAVA OKHttp生成的代码如下: 这是我用来发送POST请求的代码: 就像我之前说的,请求是真的,但是参数没有随请求一起发送。 应用他的解决方案后,我