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

Javascript 如何使用POST或GET发送带负载的PUT请求?,javascript,tizen-web-app,philips-hue,Javascript,Tizen Web App,Philips Hue,我需要向API Philips Hue Bridge发送一个带有有效负载的PUT请求,但我在javascript中有一些限制。 我只能使用: XMLHttpRequest方法: openmethod,url[,async=true[,username=null[,password=null]] 设置请求方法、请求URL和同步标志。 支持的请求方法:GET、POST senddata=null 启动请求。可选的“data”参数仅允许UTF-8编码的字符串类型。如果请求方法为GET,则忽略该参数

我需要向API Philips Hue Bridge发送一个带有有效负载的PUT请求,但我在javascript中有一些限制。 我只能使用:

XMLHttpRequest方法: openmethod,url[,async=true[,username=null[,password=null]] 设置请求方法、请求URL和同步标志。 支持的请求方法:GET、POST

senddata=null 启动请求。可选的“data”参数仅允许UTF-8编码的字符串类型。如果请求方法为GET,则忽略该参数

流产 取消任何网络活动。 这个限制来自于

飞利浦顺化桥API期望: 网址:http://hostname/api/username/lights/lightKey/state

方法:将

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

我尝试的是: var xhr=新的XMLHttpRequest; xhr.open'GET','http://hostname/api/username/lights/lightLey/state?on=true'; xhr.send; 响应:400个错误请求

var xhr=新的XMLHttpRequest; xhr.打开“POST”和“POST”http://hostname/api/username/lights/lightLey/state?on=true'; xhr.send; 响应:400个错误请求

还尝试使用以下URL结尾获取和发布: ../state?{on=true} ../state?{on:true} ../state?{on=true} ../state?{on:true} 响应:400个错误请求

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

如何解决这个问题?

将method属性更改为PUT应该可以解决这个问题

var xhr = new XMLHttpRequest();
xhr.open('PUT', 'http://hostname/api/username/lights/lightLey/state?on=true');
xhr.send();

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

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

我不能用PUT。见描述。你真的试过吗?XMLHttpRequest完全能够发送PUT请求。是的,我发送了。我得到以下错误E/StarFish 7115:不支持的方法:put。此输出来自tizen watch模拟器。我无法使用PUT。请参阅说明。如果无法在代码中使用PUT,则无法使用色调桥PUT端点。没办法。你能告诉我们你在使用什么技术/框架吗?很好!编辑该问题以包含Tizen可穿戴Web小部件规范的指针。根据他们的文档,您不能执行PUT请求。他们限制了XMLHttoRequest的实现。您可以自己创建一个服务器,从应用程序发布到服务器,然后让服务器为您执行PUT。好的,谢谢。我想可能有一种方法可以通过使用POST或GET、操纵URL或其他方式来模拟PUT。。。这真让人扫兴。我曾考虑过使用代理服务器,但对于Im编写的小型应用程序来说,这是不可行的。