javascript - जावास्क्रिप्ट/jQuery के साथ रीडायरेक्ट पर पोस्ट डेटा भेजें?




post (8)

आप iframe से रीडायरेक्ट के साथ फॉर्म भेजने के लिए target विशेषता का उपयोग कर सकते हैं। आपका फॉर्म ओपन टैग ऐसा कुछ होगा:

method="post" action="http://some.url.com/form_action" target="_top"

इस प्रश्न का उत्तर यहां दिया गया है:

मूल रूप से मैं जो करना चाहता हूं वह POST डेटा भेजता है जब मैं window.location बदलता हूं। स्थान, जैसे कि उपयोगकर्ता ने एक फॉर्म सबमिट किया है और यह एक नए पृष्ठ पर गया है। मुझे इसे इस तरह से करने की ज़रूरत है क्योंकि मुझे एक छिपे हुए यूआरएल के साथ पास करने की ज़रूरत है, और मैं इसे कॉस्मेटिक कारणों से GET रूप में यूआरएल में नहीं रख सकता।

इस समय मेरे पास यही है, लेकिन यह कोई पोस्ट डेटा नहीं भेजता है।

if(user has not voted) {

    window.location = 'http://example.com/vote/' + Username;

}

मुझे पता है कि आप jQuery.post() साथ POST डेटा भेज सकते हैं, लेकिन मुझे इसे नई window.location साथ भेजने की आवश्यकता है। स्थान।

तो संक्षेप में, मुझे एक ही समय में एक ही पृष्ठ पर उपयोगकर्ता को भेजते समय, http://example.com/vote/ पर POST माध्यम से api_url मान भेजने की आवश्यकता है।

भविष्य के संदर्भ के लिए, मैंने निम्नलिखित कार्य किया :

if(user has not voted) {

    $('#inset_form').html('<form action="http://example.com/vote/' + Username + '" name="vote" method="post" style="display:none;"><input type="text" name="api_url" value="' + Return_URL + '" /></form>');

    document.forms['vote'].submit();

}

एक छुपा method=POST action="http://example.com/vote" फ़ॉर्म window.location और भरें, window.location का उपयोग करने के बजाए इसे सबमिट करें।


प्रति @ केविन-रीड का जवाब, यहां "मैं निम्नलिखित करने के लिए समाप्त हो गया" उदाहरण का एक विकल्प है जो नाम की आवश्यकता से बचाता है और फिर फ़ॉर्म को फिर से बनाकर फॉर्म ऑब्जेक्ट को फिर से देखता है (jQuery का उपयोग करके) ..

var url = 'http://example.com/vote/' + Username;
var form = $('<form action="' + url + '" method="post">' +
  '<input type="text" name="api_url" value="' + Return_URL + '" />' +
  '</form>');
$('body').append(form);
form.submit();

यदि आप jQuery का उपयोग कर रहे हैं, तो एक रीडायरेक्ट प्लगइन है जो POST या GET विधि के साथ काम करता है। यह छिपे हुए इनपुट के साथ एक फॉर्म बनाता है और इसे आपके लिए सबमिट करता है। इसे कैसे काम करना है इसका एक उदाहरण:

$.redirect('demo.php', {'arg1': 'value1', 'arg2': 'value2'});

नोट: आप वैकल्पिक प्रकार के पैरामीटर के रूप में विधि प्रकार GET या POST पास कर सकते हैं; पोस्ट डिफ़ॉल्ट है।


यहां एक विधि है, जो jQuery का उपयोग नहीं करती है। मैंने इसे एक बुकमार्कलेट बनाने के लिए उपयोग किया, जो वर्तमान पृष्ठ को w3-html-validator पर जांचता है।

var f = document.createElement('form');
f.action='http://validator.w3.org/check';
f.method='POST';
f.target='_blank';

var i=document.createElement('input');
i.type='hidden';
i.name='fragment';
i.value='<!DOCTYPE html>'+document.documentElement.outerHTML;
f.appendChild(i);

document.body.appendChild(f);
f.submit();

यहां एक साधारण छोटा फ़ंक्शन है जिसे आप कहीं भी लागू कर सकते हैं जब तक कि आप jQuery का उपयोग नहीं कर रहे हों।

var redirect = 'http://www.website.com/page?id=23231';
$.redirectPost(redirect, {x: 'example', y: 'abc'});

// jquery extend function
$.extend(
{
    redirectPost: function(location, args)
    {
        var form = '';
        $.each( args, function( key, value ) {
            value = value.split('"').join('\"')
            form += '<input type="hidden" name="'+key+'" value="'+value+'">';
        });
        $('<form action="' + location + '" method="POST">' + form + '</form>').appendTo($(document.body)).submit();
    }
});

समाधान सं। 1

 //your variable
    var data = "brightcherry";

    //passing the variable into the window.location URL
    window.location.replace("/newpage/page.php?id='"+product_id+"'");

समाधान सं। 2

//your variable
var data = "brightcherry";

//passing the variable into the window.location URL
window.location.replace("/newpage/page.php?id=" + product_id);

details


var myRedirect = function(redirectUrl) {
var form = $('<form action="' + redirectUrl + '" method="post">' +
'<input type="hidden" name="parameter1" value="sample" />' +
'<input type="hidden" name="parameter2" value="Sample data 2" />' +
'</form>');
$('body').append(form);
$(form).submit();
};

http://www.prowebguru.com/2013/10/send-post-data-while-redirecting-with-jquery/ पर कोड मिला

मेरे काम के लिए इस और अन्य सुझावों को आजमाने के लिए जा रहे हैं।

क्या ऐसा करने का कोई और तरीका है?





post