我使用Send POST data using XMLHttpRequest中的示例来创建此JavaScript代码:
function PostXML(webURL, post_data) {
var objHTTP = new ActiveXObject("MSXML2.XMLHTTP");
objHTTP.open("POST", webURL, false);
objHTTP.setRequestHeader("Content-Type", "application/xml; charset=utf-8");
objHTTP.setRequestHeader("Accept", "application/xml; charset=utf-8");
objHTTP.setRequestHeader("Content-Length", post_data.length);
objHTTP.send(post_data);
while((objHTTP.readyState != 4) && (objHTTP.readyState != 'complete')) {
Delay(100);
}
if(200 != objHTTP.Status) {
Log.Message("Returned Status Code of: " + objHTTP.Status);
Log.Message("Status Text: " + objHTTP.StatusText);
}
else {
Log.Message("Returned Status Code of: " + objHTTP.Status);
}
return objHTTP.responseText;
}
我还需要PUT
和DELETE
这些东西。如何将此代码转移到PUT
,以及如何将此代码转移到DELETE
?
任何其他同样有用的例子也很好。
答案 0 :(得分:18)
首先,您发布的代码非常糟糕,您不应该使用它。出于某些原因,请参阅我对您的问题的评论。
要使用PUT或DELETE而不是POST,只需将传递给objHTTP.open()
的第一个参数更改为"PUT"
或"DELETE"
。
答案 1 :(得分:4)
您想发送PUT或DELETE而不是POST吗?您是否尝试过更换" POST"在代码中使用" PUT"或"删除"? (它发布在您发布的代码的第3行)。
BTW - 这是如何从Javascript实现httprequests的一个非常糟糕的例子。
答案 2 :(得分:0)
您可以尝试以下代码:
更新用户
var url = "http://localhost:8080/api/v1/users";
var data = {};
data.firstname = "John2";
data.lastname = "Snow2";
var json = JSON.stringify(data);
var xhr = new XMLHttpRequest();
xhr.open("PUT", url+'/12', true);
xhr.setRequestHeader('Content-type','application/json; charset=utf-8');
xhr.onload = function () {
var users = JSON.parse(xhr.responseText);
if (xhr.readyState == 4 && xhr.status == "200") {
console.table(users);
} else {
console.error(users);
}
}
xhr.send(json);
删除用户
var url = "http://localhost:8080/api/v1/users";
var xhr = new XMLHttpRequest();
xhr.open("DELETE", url+'/12', true);
xhr.onload = function () {
var users = JSON.parse(xhr.responseText);
if (xhr.readyState == 4 && xhr.status == "200") {
console.table(users);
} else {
console.error(users);
}
}
xhr.send(null);