JQuery: Convert GET URL to POST

前端 未结 4 694
予麋鹿
予麋鹿 2021-01-02 00:56

what\'s the easiest way to convert a GET URL string to POST in jQuery?

e.g. I want the params of a link

    

        
相关标签:
4条回答
  • 2021-01-02 00:59

    demo : http://jsfiddle.net/w5WA6/

    function getUrlVars(_url)
    {
        var vars = [], hash;
        var hashes = _url.slice(_url.indexOf('?') + 1).split('&');
    
        for(var i = 0; i < hashes.length; i++)
        {
            hash = hashes[i].split('=');
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
    
        }
    
        return vars;
    }
    
    var arVars = getUrlVars($("#test").attr("href"));
    for(var i=0;i<arVars.length;i++){
        //put var in input for submition you can change type by `hidden`
        $("#myForm").append("<input type='text' value='"+arVars[arVars[i]]+"' name='"+arVars[i]+"'/>");
    }
    ​
    
    0 讨论(0)
  • 2021-01-02 01:01

    Modified Sergey's code a little, so that when the user 'hovers' on the link, it does not display the get request.

    Link:

    <a href="#" postURL="/tpl/schRosterSearchSubmit.do?searchReci.uniqueId=&searchReci.studentId=&searchReci.schoolId=3205&searchReci.name.firstName=&searchReci.name.lastName=&searchReci.gender=&searchReci.rdobDay=&searchReci.rdobMonth=&searchReci.rdobYear=&searchReci.rssn1=&searchReci.rssn2=&searchReci.rssn3=&searchReci.phoneNumber=&searchReci.citzOrResAlien=&searchReci.country.isoCountryCode=&searchReci.address.street1=&searchReci.address.street2=&searchReci.address.city=&searchReci.address.state=&searchReci.address.zip=&searchReci.address.zipExt=&searchReci.parentN.firstName=&searchReci.parentN.lastName=&searchReci.parentEmail=&searchReci.parentMAddr.street1=&searchReci.parentMAddr.street2=&searchReci.parentMAddr.city=&searchReci.parentMAddr.state=&searchReci.parentMAddr.zip=&searchReci.parentMAddr.zipExt=&searchReci.parentPAddr.street1=&searchReci.parentPAddr.street2=&searchReci.parentPAddr.city=&searchReci.parentPAddr.state=&searchReci.parentPAddr.zip=&searchReci.parentPAddr.zipExt=&searchReci.pdobDay=&searchReci.pdobMonth=&searchReci.pdobYear=&searchReci.pssn1=&searchReci.pssn2=&searchReci.pssn3=&searchReci.parentCitzOrResAlien=&searchReci.parentCountry.isoCountryCode=&searchReci.addrUpdInd=&searchReci.inactiveDtDay=&searchReci.inactiveDtMonth=&searchReci.inactiveDtYear=&searchReci.ncoaUpdInd=&searchReci.badAddrInd=&branding=upromise&acct=XXXX&schRosterPager.offset=50" class="rnavLink">2nd Page results</a>
    

    Converting to POST onclick:

    <script type="text/javascript">
    $(document).ready(function() {
        $('.rnavLink').click(function() {
            var p = $(this).attr('postURL').split('?');
            var action = p[0];
            var params = p[1].split('&');
            var form = $('<form/>', {action:action, method:'post'}).appendTo('body');
            for (var i in params) {
                var tmp = params[i].split('=');
                var key = tmp[0], value = tmp[1];
                $('<input/>', {type:'hidden', name:key, value:value}).appendTo(form);
            }
            $(form).submit();
            return false;
        });
    });
    

    0 讨论(0)
  • 2021-01-02 01:16

    I just write this code, check please, may be it helpful http://jsfiddle.net/AEwxt/

    $('#postlink').click(function() {
        var p = $(this).attr('href').split('?');
        var action = p[0];
        var params = p[1].split('&');
        var form = $(document.createElement('form')).attr('action', action).attr('method','post');
        $('body').append(form);
        for (var i in params) {
            var tmp= params[i].split('=');
            var key = tmp[0], value = tmp[1];
            $(document.createElement('input')).attr('type', 'hidden').attr('name', key).attr('value', value).appendTo(form);
        }
        $(form).submit();
        return false;
    });
    
    0 讨论(0)
  • 2021-01-02 01:26

    You can send form input using HTML <form method="POST">

    While I'm not entirely sure of the rationale behind this, if you must enforce the javascript part, simply surround it the form with <form method="GET"> with a <noscript> tag.

    0 讨论(0)
提交回复
热议问题