jQuery ajax在url上删除整数

我正在使用这些数据……

// Pulled from the button that was hit var method = document.activeElement.getAttribute('method').toUpperCase(); var url = document.activeElement.getAttribute('url'); 

两个按钮(方法)都定义了相同的url… ‘/ user / 1’

这是我的jQuery AJAX调用…

  $.ajax({ type: method, url: url', /* I even hard coded this to make sure what it had to use */ contentType: "application/json; charset=utf-8", data: $(form).serializeArray(), error: function (xhr, status) { alert(xhr.status + ' : ' + url); } }); 

我发现PUT调用会截断给定URL末尾的数字。 但它有一个尾随SLASH,没关系。

如果我运行DELETE,它会做我期望的

 DELETE: /user/1 

如果我跑PUT,我不会得到我期望的……

 PUT: /user 

注意那个url中缺少的数字“1”?

我挖了一下,决定尝试原生JS ……这就是我拥有的……

  var xhr = new XMLHttpRequest(); xhr.open(method, url); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.onload = function() { if (xhr.status === 200) { var userInfo = JSON.parse(xhr.responseText); } }; xhr.send(JSON.stringify($(form).serializeArray())); 

如果我运行DELETE,它会做我期望的

 DELETE: /user/1 

如果我跑PUT ……

 PUT: /user/1 

有用。

是的,我知道URL在PUT的末尾有“1”,因为我在ajax调用之前和之后将变量发送到控制台。

 console.log(method + ': ' + url); 

此外,它与用于jQuery的本机JS使用相同的var创建。

现在这里是踢球者!

如果URL定义为……

 PUT: /user/walter 

最后的名字留下来。

有任何想法吗?