0

我使用了使用 XMLHttpRequest 发送 POST 数据中的示例来创建此 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;
}

我也需要PUTDELETE东西。我如何将这个代码转移到能够PUT,以及如何将这个代码转移到能够DELETE

任何其他工作相同的例子也很好。

4

3 回答 3

18

首先,您发布的代码很糟糕,您不应该使用它。出于某些原因,请参阅我对您的问题的评论。

要使用 PUT 或 DELETE 而不是 POST,只需将传递给的第一个参数更改objHTTP.open()"PUT"or "DELETE"

于 2013-11-07T16:03:08.543 回答
4

您想发送 PUT 或 DELETE 而不是 POST?您是否尝试将代码中的“POST”替换为“PUT”或“DELETE”?(它在您发布的代码的第 3 行)。

顺便说一句 - 这是如何从 Javascript 实现 httprequests 的一个非常糟糕的例子。

于 2013-11-07T16:03:59.890 回答
1

你可以试试下面的代码:

更新用户

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);
于 2020-09-13T18:08:06.413 回答