我正在使用这些数据...
// Pulled from the button that was hit
var method = document.activeElement.getAttribute('method').toUpperCase();
var url = document.activeElement.getAttribute('url');
两个按钮(方法)都定义了相同的 url...'/用户/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 末尾的数字。但它后面有一个斜线,没关系。
如果我运行 DELETE,它会按照我的预期执行
DELETE: /user/1
如果我运行 PUT,我不会得到我所期望的......
PUT: /user
注意到该网址中缺少数字“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: /user/1
有用。
是的,我知道 URL 的 PUT 末尾有“1”,因为我在 ajax 调用之前和之后将变量发送到控制台。
console.log(method + ': ' + url);
此外,用于本机 JS 的 var 创建与用于 jQuery 的 var 创建相同。
现在最关键的是!
如果 URL 定义为...
PUT: /user/walter
最后的名字保留下来。
有任何想法吗?