आप किसी HTML पृष्ठ पर डेटा नहीं भेज सकते हैं। HTML एक स्थिर फ़ाइल स्वरूप है और अपने आप डेटा प्राप्त नहीं कर सकता है। एक सर्वर HTML फ़ाइल कर सकता है, लेकिन नहीं।
हालांकि आप क्या कर सकते हैं, क्लाइंट साइड पर आपके पोस्ट अनुरोध को रोकना है, इसे क्लाइंट को XHR
और क्लाइंट पक्ष पर डेटा वापस प्राप्त करना, फिर स्क्रिप्ट प्राप्त होने पर जो कुछ भी आप चाहते हैं वह करें datos
. मूल रूप से पृष्ठ के जावास्क्रिप्ट भाग और नोड सर्वर के बीच सब कुछ होता है जो POST डेटा प्राप्त करता है और datos
वापस भेजता है ।
यहां एक सरल उदाहरण दिया गया है कि आप क्लाइंट की ओर से POST अनुरोध को कैसे रोक सकते हैं:
document.querySelector('form').onsubmit = evt => {
// don't submit the form via the default HTTP redirect
evt.preventDefault();
// get the form values
const formData = {
name1: document.querySelector('input[name=name1]').value,
name2: document.querySelector('input[name=name2]').value
}
console.log('formData:', formData);
// send the form encoded in JSON to your server
fetch('https://your-domain.com/path/to/api', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify(formData),
})
// receive datos from the server
.then(resp => resp.json())
.then(datos => {/* do what you want here */})
// catch potential errors
.catch(err => console.log('an error happened: '+err));
}
<form>
<input name="name1" value="value1">
<input name="name2" value="value2">
<button type="submit">Submit</button>
</form>
पुनश्च:उपरोक्त स्निपेट नेटवर्क त्रुटि के साथ विफल हो जाएगा क्योंकि केवल क्लाइंट-साइड स्क्रिप्ट मौजूद है - https://your-domain.com/path/to/api
पर कुछ भी नहीं चल रहा है , लेकिन आपने अपने प्रश्न में पहले से ही सही सर्वर कोड शामिल कर लिया है। बस सर्वर स्क्रिप्ट को res.send(datos)
. द्वारा समाप्त करें ।