Javascript 从<;执行删除请求;a>;标记而不构造表单?

Javascript 从<;执行删除请求;a>;标记而不构造表单?,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,是否有任何方法可以在单击时强制执行删除请求,而不是常规的GET “Rails”的方法是动态生成一个标记,该标记添加适当的参数,以便将其路由到正确的位置,但是对于这样一个简单的任务,我不太喜欢太多DOM操作 我想走这样的路线: $("a.delete").click(function(){ var do_refresh = false; $.ajax({ type: "DELETE", url: "my/path/to/delete",

是否有任何方法可以在单击时强制
执行删除请求,而不是常规的
GET

“Rails”的方法是动态生成一个
标记,该标记添加适当的参数,以便将其路由到正确的位置,但是对于这样一个简单的任务,我不太喜欢太多DOM操作

我想走这样的路线:

$("a.delete").click(function(){
    var do_refresh = false;
    $.ajax({
        type: "DELETE",
         url: "my/path/to/delete",
     success: function(){
                  do_refresh = true;
              },
     failure: function(){
                  alert("There is an error");
              }
    });
    return do_refresh; //If this is false, no refresh would happen. If it
                      //is true, it will do a page refresh.
});
我不确定上面的AJAX内容是否有效,因为这只是理论上的。有什么办法吗

注意:
请不要建议我使用rails
:method=>:delete
on
link\u to
,因为我试图在很多方面避免使用rails帮助程序,因为它们会用刺眼的javascript污染DOM。我希望将此解决方案放入一个外部JS文件中,并根据需要包括在内。

根据文档:

允许使用DELETE方法,但并非所有浏览器都支持该方法,因此您应该查看以下内容:

我就是这么做的:

$("a.delete").live('click', function() {
        $.post(this.href, "_method=delete", function(data) {
            //do refresh
        });
        return false;
    })
但我真的不知道哪些浏览器支持它,哪些不支持。我在mac上用Firefox 2和3.6、safari 3和chrome beta 5.0.375.70对它进行了测试,它可以正常工作。

你可以使用插件,它可以满足你的ajax请求,你所要做的就是在你的HTML标签上添加几个额外的属性

例如:

HTML

<button class="delete" data-target="my/path/to/delete" data-method="DELETE" data-disabled="true">Delete Article</button>

我知道它可以作为AJAX使用。我想知道是否有一种非AJAX的方式来执行删除请求,而不是像rails助手那样以动态形式包装请求。您可以将该方法设置为delete,但它只适用于Html5,因此它可能会导致您在较旧的浏览器中出现一些问题。rails 3使用不引人注目的javascript来实现这一点。我自己不知道所有的细节,但这里有一个开始:您使用jQuery设置rel=nofollow吗?提醒一下:蜘蛛不会运行你的JS,所以他们不会尊重你。@Andrew:非常感谢!:)我完全忘记了spider不会解析JS。将改为在标记中使用。
$(".delete").restintag(optionsObj, function() {
    do_refresh = true
},
function() {
    alert("some error happened");
});