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
最后的名字留下来。
有任何想法吗?