XMLHttpRequest का उपयोग करके POST डेटा भेजें


526

मैं जावास्क्रिप्ट में XMLHttpRequest का उपयोग करके कुछ डेटा भेजना चाहूंगा।

कहो कि मेरे पास HTML में निम्नलिखित रूप हैं:

<form name="inputform" action="somewhere" method="post">
    <input type="hidden" value="person" name="user">
    <input type="hidden" value="password" name="pwd">
    <input type="hidden" value="place" name="organization">
    <input type="hidden" value="key" name="requiredkey">
</form>

मैं जावास्क्रिप्ट में XMLHttpRequest का उपयोग करके समकक्ष कैसे लिख सकता हूं?

जवाबों:


748

नीचे दिया गया कोड यह दर्शाता है कि यह कैसे करना है।

var http = new XMLHttpRequest();
var url = 'get_data.php';
var params = 'orem=ipsum&name=binny';
http.open('POST', 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);

46
क्या paramsjQuery की तरह स्ट्रिंग के बजाय ऑब्जेक्ट भेजना संभव है ?
वडकोरक्वेस्ट

4
नहीं, लेकिन @ Vadorequest की टिप्पणी में jQuery का उल्लेख किया गया है - उन्होंने पूछा कि क्या "jQuery की तरह" डेटा पारित करना संभव है। मैंने उल्लेख किया कि मुझे क्या लगता है कि jQuery यह कैसे करता है और इस प्रकार, आप इसे कैसे प्राप्त कर सकते हैं।
डैन पेंट्री

11
@EHHeal, Connectionऔर Content-Lengthहेडर सेट नहीं किए जा सकते। यह कहेगा कि "असुरक्षित हेडर" सामग्री-लंबाई "सेट करने से इनकार कर दिया। देखें stackoverflow.com/a/2624167/632951
पचेरियर

76
नोट: setRequestHeader () ओपन के बाद ()। मुझे एक घंटा लगा, चलो आशा करते हैं कि यह टिप्पणी किसी को एक घंटा बचाती है;)
केविन

4
क्या application/jsonअनुरोध भेजना संभव है ?

270
var xhr = new XMLHttpRequest();
xhr.open('POST', 'somewhere', true);
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xhr.onload = function () {
    // do something to response
    console.log(this.responseText);
};
xhr.send('user=person&pwd=password&organization=place&requiredkey=key');

या यदि आप ब्राउज़र समर्थन पर भरोसा कर सकते हैं तो आप फॉर्मडेटा का उपयोग कर सकते हैं :

var data = new FormData();
data.append('user', 'person');
data.append('pwd', 'password');
data.append('organization', 'place');
data.append('requiredkey', 'key');

var xhr = new XMLHttpRequest();
xhr.open('POST', 'somewhere', true);
xhr.onload = function () {
    // do something to response
    console.log(this.responseText);
};
xhr.send(data);

4
फॉर्मडाटा ने फार्म कंस्ट्रक्टर को अपने कंस्ट्रक्टर तर्क के रूप में लिया है, मूल्यों को अनिश्चित काल तक जोड़ने की आवश्यकता नहीं है
जुआन मेंडेस

6
हां, लेकिन प्रश्न यह था कि जावास्क्रिप्ट को लिखित रूप में प्रदान किया जाए जो जावास्क्रिप्ट का उपयोग करते हुए फॉर्म जमा न करें।
uKolka

3
जवाब है कि कुछ वोट हैं, लेकिन सही चिह्नित दो अतिरिक्त हेडर का उपयोग करता है: http.setRequestHeader("Content-length", params.length);और http.setRequestHeader("Connection", "close");। क्या उनकी जरूरत है? क्या वे शायद केवल कुछ ब्राउज़रों पर ही आवश्यक हैं? (कंटेंट-लेंथ हेडर सेट करते हुए उस पेज पर एक टिप्पणी है "बिल्कुल वही था जिसकी आवश्यकता थी")
डेरेन कुक

@ डेरेन कुक कार्यान्वयन निर्भर। मेरे अनुभव से प्रमुख ब्राउज़र आपके द्वारा आपूर्ति किए गए डेटा से स्वचालित रूप से 'सामग्री-लंबाई' (यह आवश्यक है) सेट करते हैं। 'कनेक्शन' हैडर अधिकांश मामलों में 'कीप-लाइव' के लिए डिफॉल्ट करता है, जो कुछ समय के लिए कनेक्शन को खुला रखता है, इसलिए बाद के अनुरोधों को कनेक्शन को फिर से स्थापित करने की आवश्यकता नहीं होती है जैसे कि 'पास' के मामले में। आप उन स्निपेट को कंसोल में आज़मा सकते हैं, वर्तमान पृष्ठ URL का उपयोग कर सकते हैं और ब्राउज़र के टूल या वायरशार्क का उपयोग करके अनुरोध हेडर का निरीक्षण कर सकते हैं
uKolka

4
@uKolka यह जवाब पर ध्यान दिया जाना चाहिए कि आपके दूसरे समाधान के साथ अनुरोध Content-Typeअपने आप बदल जाता है multipart/form-data। इससे सर्वर साइड पर गंभीर प्रभाव पड़ता है और जानकारी को कैसे एक्सेस किया जाता है।
एक्सफेफेक्ट

84

आधुनिक जावास्क्रिप्ट का उपयोग करें!

मैं सुझाव दूंगा fetch। यह ES5 समकक्ष है और वादों का उपयोग करता है। यह बहुत अधिक पठनीय और आसानी से अनुकूलन योग्य है।

const url = "http://example.com";
fetch(url, {
    method : "POST",
    body: new FormData(document.getElementById("inputform")),
    // -- or --
    // body : JSON.stringify({
        // user : document.getElementById('user').value,
        // ...
    // })
}).then(
    response => response.text() // .json(), etc.
    // same as function(response) {return response.text();}
).then(
    html => console.log(html)
);

Node.js में, आपको fetchउपयोग करके आयात करना होगा:

const fetch = require("node-fetch");

यदि आप इसे सिंक्रोनाइज़ करना चाहते हैं (टॉप स्कोप में काम नहीं करता है):

const json = await fetch(url, optionalOptions)
  .then(response => response.json()) // .text(), etc.
  .catch((e) => {});

और जानकारी:

मोज़िला प्रलेखन

क्या मैं उपयोग कर सकता हूं (95% मार्च 2020)

डेविड वाल्श ट्यूटोरियल


4
वेब पेज कार्यक्षमता के लिए महत्वपूर्ण चीजों के लिए आपको वादे और वसा तीर का उपयोग करने से बचना चाहिए, क्योंकि कई उपकरणों में ब्राउज़र नहीं होते हैं जो इन सुविधाओं का समर्थन करते हैं।
दिमित्री

8
वादे 90% कवर किए गए हैं। function()यदि आप पसंद नहीं करते हैं तो मैंने उदाहरण जोड़े हैं =>। डेवलपर अनुभव को आसान बनाने के लिए आपको आधुनिक जेएस का उपयोग करना चाहिए। IE पर अटके हुए लोगों के एक छोटे से प्रतिशत के बारे में चिंता करना तब तक इसके लायक नहीं है जब तक कि आप एक बहुत बड़ा उद्यम न हों
गिबोल्ट

4
फैट एरो भी thisकीवर्ड के साथ काम नहीं करता है । मैं इसका उल्लेख करना पसंद करता हूं, लेकिन मैं thisफ़ंक्शन कारखानों के बजाय गुप्त रूप से उपयोग करने वाले लोगों , और विरासत वास्तुकला से नफरत करता हूं। मुझे माफ कर दो, मैं नोड हूँ।
agm1984

3
मैं thisप्लेग की तरह से बचता हूं , और इसलिए किसी को भी पढ़ना चाहिए this
जिबोल्ट

2
यदि संगतता के बारे में चिंतित हैं ... Google es6 ट्रांसपिलर ... stackoverflow.com/questions/40205547/… । इसे सरल लिखें। संगत को तैनात करें। +1 से बचें this
TamusJRoyce

35

FormDataAJAX अनुरोध सबमिट करने के लिए न्यूनतम उपयोग

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge, chrome=1"/>
<script>
"use strict";
function submitForm(oFormElement)
{
  var xhr = new XMLHttpRequest();
  xhr.onload = function(){ alert (xhr.responseText); } // success case
  xhr.onerror = function(){ alert (xhr.responseText); } // failure case
  xhr.open (oFormElement.method, oFormElement.action, true);
  xhr.send (new FormData (oFormElement));
  return false;
}
</script>
</head>

<body>
<form method="post" action="somewhere" onsubmit="return submitForm(this);">
  <input type="hidden" value="person"   name="user" />
  <input type="hidden" value="password" name="pwd" />
  <input type="hidden" value="place"    name="organization" />
  <input type="hidden" value="key"      name="requiredkey" />
  <input type="submit" value="post request"/>
</form>
</body>
</html>

टिप्पणियों

  1. यह पूरी तरह से ओपी प्रश्न का उत्तर नहीं देता है क्योंकि इसमें उपयोगकर्ता को अनुरोध सबमिट करने के लिए क्लिक करने की आवश्यकता होती है। लेकिन इस तरह के सरल समाधान की खोज करने वाले लोगों के लिए यह उपयोगी हो सकता है।

  2. यह उदाहरण बहुत सरल है और GETविधि का समर्थन नहीं करता है । यदि आप अधिक परिष्कृत उदाहरणों से दिलचस्प हैं, तो कृपया उत्कृष्ट MDN प्रलेखन पर एक नज़र डालें । XMLHttpRequest के बारे में इसी तरह का उत्तर HTML फॉर्म पोस्ट करने के लिए भी देखें ।

  3. इस समाधान की सीमा: जैसा कि जस्टिन ब्लैंक और थॉमस मंक (उनकी टिप्पणी देखें) द्वारा इंगित किया गया है , FormDataIE9 और Android 2.3 पर डिफ़ॉल्ट ब्राउज़र द्वारा समर्थित नहीं है।


1
इसके बारे में केवल एक चीज यह है कि मुझे लगता है कि फॉर्मडैटा IE 9 में उपलब्ध नहीं है, इसलिए यह बिना पॉलीफिल के बहुत सारे लोगों के लिए उपयोग करने योग्य नहीं है। developer.mozilla.org/en-US/docs/Web/API/FormData
जस्टिन ब्लैंक

धन्यवाद @ThomasMunk आपके लिंक के लिए :-) हम देखते हैं कि FormDataIE9 और Android 2.3 (और OperaMini को छोड़कर कई ब्राउज़रों द्वारा समर्थित है लेकिन यह अंतिम व्यापक रूप से उपयोग नहीं किया गया है)। चीयर्स ;-)
ओलिब्रे

2
सुरुचिपूर्ण समाधान, लेकिन आपको यह निर्दिष्ट करना चाहिए onsubmit="return submitForm(this);"अन्यथा उपयोगकर्ता अनुरोध में URL पर पुनर्निर्देशित हो जाता है।
विक

धन्यवाद @Vic आपके योगदान के लिए, मैंने जवाब अपडेट कर दिया है। चीयर्स ;-)
ओलिब्रे

1
मैं वेब-विकास के साथ अनुभव नहीं कर रहा हूँ। मुझे पता चला है कि जब आप लौटते हैं तो POST अनुरोध वास्तव में भेजा जाता है false। यदि trueलौटाया जाता है, तो मूल (अवांछित) POST अनुरोध भेजा जाएगा! आपका उत्तर सही है, भ्रम के लिए खेद है।
मार्कस एल

30

यहाँ एक पूर्ण समाधान के साथ है application-json:

// Input values will be grabbed by ID
<input id="loginEmail" type="text" name="email" placeholder="Email">
<input id="loginPassword" type="password" name="password" placeholder="Password">

// return stops normal action and runs login()
<button onclick="return login()">Submit</button>

<script>
    function login() {
        // Form fields, see IDs above
        const params = {
            email: document.querySelector('#loginEmail').value,
            password: document.querySelector('#loginPassword').value
        }

        const http = new XMLHttpRequest()
        http.open('POST', '/login')
        http.setRequestHeader('Content-type', 'application/json')
        http.send(JSON.stringify(params)) // Make sure to stringify
        http.onload = function() {
            // Do whatever with response
            alert(http.responseText)
        }
    }
</script>

सुनिश्चित करें कि आपका बैकएंड एपीआई JSON को पार्स कर सकता है।

उदाहरण के लिए, एक्सप्रेस JS में:

import bodyParser from 'body-parser'
app.use(bodyParser.json())

1
ग्रेट, लेकिन XMLHttpRequest.open में async पैरामीटर के लिए 'गलत' मान का उपयोग न करें - यह पदावनत है और एक चेतावनी देगा
johnnycardy

क्या हमें वहाँ सही होना चाहिए या उस पैरामीटर को छोड़ देना चाहिए? यदि आप निर्दिष्ट कर सकते हैं तो मैं उत्तर को अपडेट करूंगा।
agm1984

1
यह डिफ़ॉल्ट रूप से सही होना चाहिए, लेकिन मुझे नहीं पता कि सभी ब्राउज़र सम्मान करते हैं कि
johnnycardy

सत्य की डिफ़ॉल्ट को देखते हुए, मैं इसे उदाहरण से हटाने और इस URL को शोध के लिए छोड़ने जा रहा हूं: developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/open
agm195

1
मुझे यह बेहतर लगता है क्योंकि यह उचित है और किसी के साथ शुरू करने के लिए एक कम विवरण है। इसे उजागर करने के लिए धन्यवाद।
agm1984

25

कोई प्लगइन्स की जरूरत है!

नीचे दिए गए कोड का चयन करें और उसे BOOKMARK BAR में खींचें ( यदि आप इसे नहीं देखते हैं, ब्राउज़र सेटिंग्स से सक्षम करें ), तो EDL लिंक को लिंक करें:

यहाँ छवि विवरण दर्ज करें

javascript:var my_params = prompt("Enter your parameters", "var1=aaaa&var2=bbbbb"); var Target_LINK = prompt("Enter destination", location.href); function post(path, params) { var xForm = document.createElement("form"); xForm.setAttribute("method", "post"); xForm.setAttribute("action", path); for (var key in params) { if (params.hasOwnProperty(key)) { var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", key); hiddenField.setAttribute("value", params[key]); xForm.appendChild(hiddenField); } } var xhr = new XMLHttpRequest(); xhr.onload = function () { alert(xhr.responseText); }; xhr.open(xForm.method, xForm.action, true); xhr.send(new FormData(xForm)); return false; } parsed_params = {}; my_params.split("&").forEach(function (item) { var s = item.split("="), k = s[0], v = s[1]; parsed_params[k] = v; }); post(Target_LINK, parsed_params); void(0);

बस इतना ही! अब आप किसी भी वेबसाइट पर जा सकते हैं, और BOOKMARK BAR में उस बटन पर क्लिक करें !


ध्यान दें:

उपरोक्त विधि विधि का उपयोग करके डेटा भेजता है XMLHttpRequest, इसलिए, आपको स्क्रिप्ट को ट्रिगर करते समय एक ही डोमेन पर होना चाहिए। इसलिए मैं एक सिम्युलेटेड FORM SUBMITTING के साथ डेटा भेजना पसंद करता हूं, जो किसी भी डोमेन को कोड भेज सकता है - यहां उसके लिए कोड है:

 javascript:var my_params=prompt("Enter your parameters","var1=aaaa&var2=bbbbb"); var Target_LINK=prompt("Enter destination", location.href); function post(path, params) {   var xForm= document.createElement("form");   xForm.setAttribute("method", "post");   xForm.setAttribute("action", path); xForm.setAttribute("target", "_blank");   for(var key in params) {   if(params.hasOwnProperty(key)) {        var hiddenField = document.createElement("input");      hiddenField.setAttribute("name", key);      hiddenField.setAttribute("value", params[key]);         xForm.appendChild(hiddenField);     }   }   document.body.appendChild(xForm);  xForm.submit(); }   parsed_params={}; my_params.split("&").forEach(function(item) {var s = item.split("="), k=s[0], v=s[1]; parsed_params[k] = v;}); post(Target_LINK, parsed_params); void(0); 

मोज़िला के लिए, क्या मैं ऐसा कुछ कर सकता हूँ?

मैंने नहीं किया और मैं नहीं कर सका: | मेरे पास 125 प्रतिनिधि नहीं हैं: | और अगर आप मेरी प्रोफाइल देखते हैं तो आप देखेंगे कि मेरे पास 136 वोट हैं: | यहां तक ​​कि मुझे नीचा दिखाने की अनुमति मिलने के बाद भी, मैं इसे तब तक टालूंगा जब तक कि यह अशांतिपूर्ण न हो: |

18
और आपके सवाल का जवाब नहीं है कि ओपी ने क्या मांगा है। एक HTTP अनुरोध BookMarking ...!? मुझे XmlHttpRequestआपके उत्तर से संबंधित कोई भी बात दिखाई नहीं दे रही है: |

2
बहुत बढ़िया। बस जब यह एक उत्तर था, समीक्षा करते समय कुछ संबंध चाहते थे। अब यह उन सभी के लिए एक जवाब प्लस जीआर 8 टिप है, जो छोड़ देते हैं। मैंने वोट वापस कर दिए हैं। चीयर्स
आइसमैन

5

मैंने एक ही पोस्ट का उपयोग करके इस तरह की समस्या का सामना किया है और इस लिंक पर मैंने अपना मुद्दा हल किया है।

 var http = new XMLHttpRequest();
 var url = "MY_URL.Com/login.aspx";
 var params = 'eid=' +userEmailId+'&amp;pwd='+userPwd

 http.open("POST", url, true);

 // Send the proper header information along with the request
 //http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
 //http.setRequestHeader("Content-Length", params.length);// all browser wont support Refused to set unsafe header "Content-Length"
 //http.setRequestHeader("Connection", "close");//Refused to set unsafe header "Connection"

 // Call a function when the state 
 http.onreadystatechange = function() {
    if(http.readyState == 4 && http.status == 200) {
        alert(http.responseText);
    }
 }
 http.send(params);

इस लिंक ने पूरी जानकारी दी है।


4
var util = {
    getAttribute: function (dom, attr) {
        if (dom.getAttribute !== undefined) {
            return dom.getAttribute(attr);
        } else if (dom[attr] !== undefined) {
            return dom[attr];
        } else {
            return null;
        }
    },
    addEvent: function (obj, evtName, func) {
        //Primero revisar attributos si existe o no.
        if (obj.addEventListener) {
            obj.addEventListener(evtName, func, false);

        } else if (obj.attachEvent) {
            obj.attachEvent(evtName, func);
        } else {
            if (this.getAttribute("on" + evtName) !== undefined) {
                obj["on" + evtName] = func;
            } else {
                obj[evtName] = func;
            }

        }

    },
    removeEvent: function (obj, evtName, func) {
        if (obj.removeEventListener) {
            obj.removeEventListener(evtName, func, false);
        } else if (obj.detachEvent) {
            obj.detachEvent(evtName, func);
        } else {
            if (this.getAttribute("on" + evtName) !== undefined) {
                obj["on" + evtName] = null;
            } else {
                obj[evtName] = null;
            }
        }

    },
    getAjaxObject: function () {
        var xhttp = null;
        //XDomainRequest
        if ("XMLHttpRequest" in window) {
            xhttp = new XMLHttpRequest();
        } else {
            // code for IE6, IE5
            xhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        return xhttp;
    }

};

//START CODE HERE.

var xhr = util.getAjaxObject();

var isUpload = (xhr && ('upload' in xhr) && ('onprogress' in xhr.upload));

if (isUpload) {
    util.addEvent(xhr, "progress", xhrEvt.onProgress());
    util.addEvent(xhr, "loadstart", xhrEvt.onLoadStart);
    util.addEvent(xhr, "abort", xhrEvt.onAbort);
}

util.addEvent(xhr, "readystatechange", xhrEvt.ajaxOnReadyState);

var xhrEvt = {
    onProgress: function (e) {
        if (e.lengthComputable) {
            //Loaded bytes.
            var cLoaded = e.loaded;
        }
    },
    onLoadStart: function () {
    },
    onAbort: function () {
    },
    onReadyState: function () {
        var state = xhr.readyState;
        var httpStatus = xhr.status;

        if (state === 4 && httpStatus === 200) {
            //Completed success.
            var data = xhr.responseText;
        }

    }
};
//CONTINUE YOUR CODE HERE.
xhr.open('POST', 'mypage.php', true);
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');


if ('FormData' in window) {
    var formData = new FormData();
    formData.append("user", "aaaaa");
    formData.append("pass", "bbbbb");

    xhr.send(formData);

} else {

    xhr.send("?user=aaaaa&pass=bbbbb");
}

1
हैलो ह्यूगो, यह कोड प्रगति अपलोड के साथ डेटा या फ़ाइल भेजने के लिए है यदि ब्राउज़र इसका समर्थन करता है। सभी संभावित घटनाओं और संगतता ब्राउज़र को शामिल किया। यह ब्राउज़र से सबसे नई ऑब्जेक्ट क्लास का उपयोग करने की कोशिश करता है। यह आपकी मदद करता है?
टोटो

2

फॉर्मडेटा के बजाय जोंस ऑब्जेक्ट का उपयोग करने का प्रयास करें। नीचे मेरे लिए कोड काम कर रहा है। formdata मेरे लिए भी काम नहीं करता है, इसलिए मैं इस समाधान के साथ आया था।

var jdata = new Object();
jdata.level = levelVal; // level is key and levelVal is value
var xhttp = new XMLHttpRequest();
xhttp.open("POST", "http://MyURL", true);
xhttp.setRequestHeader('Content-Type', 'application/json');
xhttp.send(JSON.stringify(jdata));

xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      console.log(this.responseText);
    }
}

1

सिर्फ फीचर पाठकों के लिए यह सवाल है। मैंने पाया कि स्वीकृत उत्तर तब तक ठीक काम करता है जब तक आपके पास एक दिया हुआ मार्ग है, लेकिन यदि आप इसे खाली छोड़ देते हैं तो यह IE में विफल हो जाएगा। यहां वह है जो मैंने जुटाया:

function post(path, data, callback) {
    "use strict";
    var request = new XMLHttpRequest();

    if (path === "") {
        path = "/";
    }
    request.open('POST', path, true);
    request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
    request.onload = function (d) {
        callback(d.currentTarget.response);
    };
    request.send(serialize(data));
}

आप इसे पसंद कर सकते हैं:

post("", {orem: ipsum, name: binny}, function (response) {
    console.log(respone);
})

1

कुछ डुप्लिकेट हैं जो इस पर स्पर्श करते हैं, और कोई भी वास्तव में उस पर खर्च नहीं करता है। मैं उदाहरण देने के लिए स्वीकृत उत्तर का उधार लूंगा

http.open('POST', url, true);
http.send('lorem=ipsum&name=binny');

मैंने http.onload(function() {})दृष्टांत के लिए इसे (मैं उस उत्तर की पुरानी पद्धति के बजाय उपयोग करता हूं ) की देखरेख की। यदि आप इस का उपयोग करते हैं, तो आप पाएंगे कि आपका सर्वर संभवतः POST निकाय को एक स्ट्रिंग के रूप में व्याख्या कर रहा है और वास्तविक key=valueपैरामीटर नहीं है (अर्थात PHP कोई $_POSTचर नहीं दिखाएगा )। आपको इसे प्राप्त करने के लिए फॉर्म हेडर पास करना होगा, और इससे पहले ऐसा करना होगाhttp.send()

http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');

यदि आप JSON का उपयोग कर रहे हैं और URL-एन्कोडेड डेटा नहीं, तो application/jsonइसके बजाय पास करें


1

इससे मुझे मदद मिली क्योंकि मैं केवल xmlHttpRequestफॉर्म डेटा के रूप में एक ऑब्जेक्ट का उपयोग करना चाहता था और पोस्ट करना चाहता था :

function sendData(data) {
  var XHR = new XMLHttpRequest();
  var FD  = new FormData();

  // Push our data into our FormData object
  for(name in data) {
    FD.append(name, data[name]);
  }

  // Set up our request
  XHR.open('POST', 'https://example.com/cors.php');

  // Send our FormData object; HTTP headers are set automatically
  XHR.send(FD);
}

https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Sending_forms_through_JavaScript

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.