我正在尝试构建一个ajax请求,它最终将允许用户通过单击每个项目旁边的按钮来对列表进行排序。这是我到目前为止所知道的:
upLinks.on('click', function(e) {
var link;
e.preventDefault();
link = $(this)[0];
console.log(link.pathname);
$.ajax({
type: 'PUT',
url: link.pathname
});
return false;
});不出所料,console.log(link.pathname)会将/projects/11/project_items/104/sort注销到控制台。但是,ajax请求返回一个错误:
PUT http://localhost:3000/projects/11 400 (Bad Request)查看服务器日志,由于某种原因,它实际上是去往/projects/11,而不是/projects/11/project_items/104/sort。根据jQuery文档,在本例中,/projects/11将是ajax的默认参数,因为这是当前页面的路由。这让我相信它完全忽略了url参数。
如果我将HTTP方法类型更改为GET,ajax将按预期运行。对于PUT请求,/projects/11/project_items/104/sort不是可接受的url有什么原因吗?我认为,因为我正在更新数据(使用新位置),所以PUT请求将是最合理的选择。
发布于 2015-01-13 23:20:01
需要注意的是,如果您使用的是IIS 404服务器,并且jquery PUT或DELETE请求返回404个错误,则需要在IIS中启用这些谓词。我发现这是一个很好的资源:http://geekswithblogs.net/michelotti/archive/2011/05/28/resolve-404-in-iis-express-for-put-and-delete-verbs.aspx
“要发出的请求类型("POST”或"GET"),默认为"GET“。注意:此处也可以使用其他HTTP请求方法,但并非所有浏览器都支持这些方法。”来自:http://api.jquery.com/jQuery.ajax/#options
https://stackoverflow.com/questions/27925359
复制相似问题