发送使用Javascript触发事件的HTTP POST发送使用Javascript触发事件的HTT

2019-05-12 02:29发布

我敢新的JavaScript和我的工作,其在IP视频解码的嵌入式系统。

我写了一个小的应用程序设置和改变使用javascript渠道,包括了遥控器按键处理和事件处理程序,这样我就可以采取一些行动或者视频停止或在网络中断时出现的消息,但现在我也想设置当我改变信道以包括有关所述设备和所述URL当前正在播放一些数据,被发送的自动HTTP POST。

这是运行busybox的小型嵌入式硬件设备,所以我不能使用Ajax或添加任何其他正常的网络技术,我只需要使用Javascript来发送通过我的监控事件引发了HTTP POST,所以我的第一个目标是要通过按一个按钮,然后发送POST那个消息锻炼时后触发它。

任何熟悉做这样的事情,可以给我如何在它邮寄给已知听音设备/位置,包括数据的快速概述?

非常感谢

Answer 1:

这很容易,如果你的Javascript引擎支持的XMLHttpRequest(XHR),这是在网络上随处可见。 谷歌,或看到这个页面的详细信息。 我在下面提供了一个代码段。 仔细阅读,尤其是在响应处理程序的“异步”是真正的和封闭的意见。 此外,该代码是超轻量级尽可能的Javascript去,我会想到它会正常工作在几乎任何现代的硬件足迹。

var url = "http://www.google.com/";
var method = "POST";
var postData = "Some data";

// You REALLY want shouldBeAsync = true.
// Otherwise, it'll block ALL execution waiting for server response.
var shouldBeAsync = true;

var request = new XMLHttpRequest();

// Before we send anything, we first have to say what we will do when the
// server responds. This seems backwards (say how we'll respond before we send
// the request? huh?), but that's how Javascript works.
// This function attached to the XMLHttpRequest "onload" property specifies how
// the HTTP response will be handled. 
request.onload = function () {

   // Because of javascript's fabulous closure concept, the XMLHttpRequest "request"
   // object declared above is available in this function even though this function
   // executes long after the request is sent and long after this function is
   // instantiated. This fact is CRUCIAL to the workings of XHR in ordinary
   // applications.

   // You can get all kinds of information about the HTTP response.
   var status = request.status; // HTTP response status, e.g., 200 for "200 OK"
   var data = request.responseText; // Returned data, e.g., an HTML document.
}

request.open(method, url, shouldBeAsync);

request.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
// Or... request.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
// Or... whatever

// Actually sends the request to the server.
request.send(postData);


文章来源: Sending an HTTP Post using Javascript triggered event