繁体   English   中英

使用 XMLHttpRequest 发送 PUT/DELETE 数据

[英]Sending PUT/DELETE data with a XMLHttpRequest

我使用使用 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

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

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

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

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

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

你可以试试下面的代码:

更新用户

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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM