gpt4 book ai didi

javascript - 如何使用 POST 或 GET 发送带有负载的 PUT 请求?

转载 作者:行者123 更新时间:2023-12-02 22:07:13 25 4
gpt4 key购买 nike

我需要将带有有效负载的 PUT 请求发送到 API(Philips Hue Bridge),但我在 javascript 方面有一些限制。我可以只能使用:

XMLHttpRequest 方法:

open(方法, url [, async = true [, 用户名 = null [, 密码 = null]]])
设置请求方法、请求 URL 和同步标志。支持的请求方式:GET、POST

发送(数据= null)
发起请求。可选的“data”参数仅允许 UTF-8 编码的字符串类型。如果请求方法是 GET,则忽略该参数。

中止()
取消任何网络事件。

此限制来自Tizen Wearable Web Widget Specification


飞利浦 Hue Bridge API 期望:

URL: http://hostname/api/username/lights/lightKey/state

方法: PUT

有效负载示例: {"on": true}


我尝试过的:

var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://hostname/api/username/lights/lightLey/state?on=true');
xhr.send();
响应: 400(错误请求)

var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://hostname/api/username/lights/lightLey/state?on=true');
xhr.send();
响应: 400(错误请求)

还尝试了具有以下 URL 结尾的 GETPOST:
../state?{on=true}
../state?{on:true}
../state?{"on"=true}
../state?{"on":true}
响应: 400(错误请求)

同样,除了上面提到的 XMLHttpRequest 方法之外,我无法使用任何其他库或命令。

我该如何解决这个问题?

最佳答案

下面是示例代码。您可以在代码中尝试这种方式。

var http = new XMLHttpRequest();
var url = 'your_URL.php';
var params = 'on=true';
http.open('PUT', url, true);

//Send the proper header information along with the request
http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');

http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
http.send(params);

关于javascript - 如何使用 POST 或 GET 发送带有负载的 PUT 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59682561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com