当前位置:  开发笔记 > 编程语言 > 正文

POST请求(Javascript)

如何解决《POST请求(Javascript)》经验,为你挑选了2个好方法。

如何在不使用表单且不回发的情况下在Javascript中创建简单的POST请求?



1> Pankaj ..:

虽然我从@sundeep回答中获取代码示例,但是为了完整性而在此处发布代码

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);



2> SnakeDrak..:

我已经创建了一个函数,可以在不刷新页面的情况下发送请求,而无需打开页面而不使用AJAX.进程对用户是不可见的.我使用false iframe发送请求:

/**
* 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/.

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有