2013-02-14 50 views
9

मैं जावास्क्रिप्ट के लिए बहुत नया हूं और एक एम्बेडेड सिस्टम पर काम कर रहा हूं जो आईपी पर वीडियो को डीकोड करता है।जावास्क्रिप्ट ट्रिगर किए गए ईवेंट का उपयोग कर एक HTTP पोस्ट भेजना

मैंने जावास्क्रिप्ट का उपयोग करके चैनलों को स्थापित करने और बदलने के लिए एक छोटा ऐप लिखा है और रिमोट कंट्रोल और इवेंट हैंडलर के लिए एक प्रमुख हैंडलर शामिल किया है, इसलिए यदि वीडियो बंद हो जाता है या नेटवर्क डाउन हो जाता है तो मैं कुछ कार्रवाई कर सकता हूं या एक संदेश पेश कर सकता हूं, लेकिन अब मैं एक स्वचालित HTTP पोस्ट भी स्थापित करना चाहता हूं जो कि जब मैं डिवाइस के बारे में कुछ डेटा और वर्तमान में खेला जाने वाला यूआरएल शामिल करने के लिए चैनल बदलता हूं तो भेजा जाता है।

यह एक छोटा एम्बेडेड हार्डवेयर डिवाइस है जो व्यस्त बॉक्स चला रहा है, इसलिए मैं अजाक्स का उपयोग नहीं कर सकता या किसी भी अन्य सामान्य वेब प्रौद्योगिकियों को जोड़ नहीं सकता, मुझे बस जावास्क्रिप्ट का उपयोग करने की आवश्यकता है, जो कि मैं जिन घटनाओं पर निगरानी कर रहा हूं, उनके द्वारा ट्रिगर किए गए HTTP पोस्ट को भेजने के लिए, इसलिए मेरा पहला लक्ष्य एक बटन दबाकर और उस पोस्ट संदेश को भेजने में सक्षम होना है, फिर बाद में इसे ट्रिगर करने के लिए बाहर काम करें।

ऐसी चीजें करने से परिचित कोई भी जो मुझे एक ज्ञात सुनवाई डिवाइस/स्थान पर पोस्ट भेजने के बारे में एक त्वरित अवलोकन दे सकता है और इसमें डेटा शामिल कर सकता है?

बहुत धन्यवाद

+0

आपका जावास्क्रिप्ट इंजन/रनटाइम क्या है? क्या आपके पास XMLHttpRequest समर्थन है? ब्राउजर और node.js. में जावास्क्रिप्ट के साथ परिचित दो प्रमुख जावास्क्रिप्ट वातावरण हैं पूर्व HTTP संदेश भेजने के लिए XMLHttpRequest का उपयोग करता है। बाद में विशेष node.js समर्थन पुस्तकालयों का उपयोग करता है। प्रत्येक एक बहुत ही सरल प्रेषण एपीआई प्रदान करता है। –

+0

हाय विल, हां हमारे पास XMLHttpRequest समर्थन है। –

उत्तर

24

यह आसान अपने जावास्क्रिप्ट इंजन XMLHttpRequest (XHR) है, जो वेब पर सर्वव्यापी है समर्थन करता है तो है। विवरण के लिए Google इसे देखें या this page देखें। मैंने नीचे एक कोड स्निपेट प्रदान किया है। इसे ध्यान से पढ़ें, विशेष रूप से "async" पर टिप्पणियां प्रतिक्रिया हैंडलरों में सत्य और बंद होने पर। साथ ही, यह कोड सुपर लाइटवेट है जहां तक ​​जावास्क्रिप्ट जाता है और मुझे उम्मीद है कि यह किसी भी समकालीन हार्डवेयर पदचिह्न पर ठीक काम करेगा।

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

धन्यवाद - यह बहुत मदद करता है। –

+3

मैं node.js का उपयोग कर रहा हूं, और यह var अनुरोध = new XMLHttpRequest() से पहले निम्न पंक्ति जोड़ने के बाद मेरे लिए काम करता है; var XMLHttpRequest = आवश्यकता ("xmlhttprequest")। XMLHttpRequest; आप XMLHttpRequest $ npm इंस्टॉल करना भी चाहते हैं xmlhttprequest – saad

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^