Сабж. Код:
Вызываю: (если тут поменять PUT на POST, чудесным образом всё отправится (все параметры и сам запрос), но с PUT, параметры игнорируются)
z = new Request("PUT", "/api/items/29", "name=" + encodeURIComponent("tested"), console.log);
Класс
class Request {
constructor(method, url, params, todo) {
this.method = method;
this.url = url;
this.params = params;
this.todo = todo;
this.xmlhttp = null;
try {
this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
this.xmlhttp = null;
}
}
if (!this.xmlhttp && typeof XMLHttpRequest != 'undefined') {
this.xmlhttp = new XMLHttpRequest();
}
this.xmlhttp.open(this.method, this.url);
// this.xmlhttp.setRequestHeader('Content-Type', 'application/javascript');
this.xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
this.xmlhttp.onreadystatechange = function () {
if (this.xmlhttp.readyState == 4 && this.xmlhttp.status == 200)
todo(this.xmlhttp.responseText);
}.bind(this);
this.xmlhttp.send(this.params);
}
encodeParams(str) {
str = str.split('&');
return str;
}
}