Sending an HTTP Post using Javascript triggered event

后端 未结 1 579
情深已故
情深已故 2020-12-01 14:38

I\'m pretty new to javascript and am working on an embedded system which decodes video over IP.

I have written a small app for setting up and changing channels using

相关标签:
1条回答
  • 2020-12-01 15:27

    This is easy if your Javascript engine supports XMLHttpRequest (XHR), which is ubiquitous on the web. Google it or see this page for details. I've provided a code snippet below. Read it carefully, particularly the comments on "async" being true and closures in response handlers. Also, this code is super lightweight as far as Javascript goes and I would expect it would work fine on just about any contemporary hardware footprint.

    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);
    
    0 讨论(0)
提交回复
热议问题