2009-03-28 40 views
15

आप जावास्क्रिप्ट में एक फॉर्म का उपयोग किए बिना और बिना पोस्ट किए एक सरल पोस्ट अनुरोध कैसे करते हैं?POST अनुरोध (जावास्क्रिप्ट)

+0

शायद अधिक जानकारी देना सबसे अच्छा होगा? – spender

+1

यह एक डुप्लिकेट – bendewey

+0

है यह बहुत अस्पष्ट है, और आप Google क्वेरी –

उत्तर

3

आप इस AJAX कॉल का उपयोग कर (XMLHttpRequest ऑब्जेक्ट)

http://www.openjs.com/articles/ajax_xmlhttp_using_post.php

+0

मुझे लगता है कि अगर वह AJAX का उपयोग करना चाहता था तो वह इस्तेमाल होता। मेरे जवाब में मैंने 'AJAX' ** के बिना एक पोस्ट अनुरोध ** बनाया है और पृष्ठ खोलने के बिना, पॉपअप या पेज रीफ्रेश करें :)। –

13

कर सकते हैं हालांकि मैं पूर्णता

var url = "sample-url.php"; 
var params = "lorem=ipsum&name=alpha"; 
var xhr = new XMLHttpRequest(); 
xhr.open("POST", url, true); 

//Send the proper header information along with the request 
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 

xhr.send(params); 
+0

इतना आसान, मुझे यह पसंद है: डी –

5

के लिए यहाँ @sundeep जवाब से कोड का नमूना ले रहा हूँ, लेकिन पोस्टिंग कोड मैंने एक फ़ंक्शन बनाया है जो पृष्ठ को बिना किसी पृष्ठ और के बिना AJAX के बिना रीफ्रेश किए बिना अनुरोध भेजता है। खरीद उपयोगकर्ता के लिए अदृश्य है। मैंने गलत आइफ्रेम का प्रयोग कर एक अनुरोध भेजने के लिए:

/** 
* Make a request without ajax and without refresh the page 
* Invisible for the user 
* @param url string 
* @param params object 
* @param method string get or post 
**/ 
function requestWithoutAjax(url, params, method){ 

    params = params || {}; 
    method = method || "post"; 

    // function to remove the iframe 
    var removeIframe = function(iframe){ 
     iframe.parentElement.removeChild(iframe); 
    }; 

    // make a iframe... 
    var iframe = document.createElement('iframe'); 
    iframe.style.display = 'none'; 

    iframe.onload = function(){ 
     var iframeDoc = this.contentWindow.document; 

     // Make a invisible form 
     var form = iframeDoc.createElement('form'); 
     form.method = method; 
     form.action = url; 
     iframeDoc.body.appendChild(form); 

     // pass the parameters 
     for(var name in params){ 
      var input = iframeDoc.createElement('input'); 
      input.type = 'hidden'; 
      input.name = name; 
      input.value = params[name]; 
      form.appendChild(input); 
     } 

     form.submit(); 
     // remove the iframe 
     setTimeout(function(){ 
      removeIframe(iframe); 
     }, 500); 
    }; 

    document.body.appendChild(iframe); 
} 

अब आप यह कर सकते हैं:

requestWithoutAjax('url/to', { id: 2, price: 2.5, lastname: 'Gamez'}); 

देखें कैसे काम करता है !: http://jsfiddle.net/b87pzbye/10/

+0

संपादित करें: ऐसा लगता है कि किसी ने एक वर्किंग वर्जन बनाने का तरीका बताया है जो एक संभावित एक्सएसएस हमले ध्वज नहीं बढ़ाता है। http://jsfiddle.net/b87pzbye/37/ –

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