微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 在jQuery中使用ajax – 不接受url

我正在尝试构建一个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将按预期运行.是否有某些原因/ projects / 11 / project_items / 104 / sort不是PUT请求的可接受URL?我认为,因为我正在更新数据(使用新位置),PUT请求将是最合理的选择.

解决方法:

请注意,如果您使用的是IIS Web服务器并且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请求方法,如PUT和DELETE,但并非所有浏览器都支持它们“.来自:http://api.jquery.com/jQuery.ajax/#options

参考堆栈问题:How to send a PUT/DELETE request in jQuery?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐