Javascript 在新的弹出窗口中打开POST响应

Javascript 在新的弹出窗口中打开POST响应,javascript,jquery,http-post,Javascript,Jquery,Http Post,下面是我用来发布数据的粘贴代码。响应将在新选项卡中打开 GF.SubmitForm = function (url, params, target) { // create form string using array push and join var form = ['<form method="POST" action="', url, '" target="', target, '">']; for (var key in params)

下面是我用来发布数据的粘贴代码。响应将在新选项卡中打开

GF.SubmitForm = function (url, params, target) {
    // create form string using array push and join
    var form = ['<form method="POST" action="', url, '" target="', target, '">'];
    for (var key in params)
        form.push('<input type="hidden" name="', key, '" value="', params[key], '"/>');
    form.push('</form>');
    jQuery(form.join('')).appendTo('body')[0].submit();
}

您将无法使用
window.open()
打开新窗口。使用Ajax可以帮助您避免对
GE.SubmitForm()

GF.SubmitForm=函数(url、参数、目标){
如果(目标=='newwindow')
{
var paramsString='';
for(参数中的变量键)
paramsString+=key+'='+params[key]+'&';
var urlCopy=url;
jQuery.ajax({
cache:false,
键入:“post”,
数据:paramsString,
数据类型:“html”,
url:urlCopy
}).完成(功能(数据){
var newWindow=window.open(urlCopy,目标,“菜单栏=1,可调整大小=1,宽度=350,高度=250”);
newWindow.document.write(数据);
});
返回;
}
//使用数组push和join创建表单字符串
变量形式=[''];
for(参数中的变量键)
形式。推送(“”);
形式。推送(“”);
jQuery(form.join(“”)).appendTo('body')[0].submit();
};
请原谅需要作为
目标值的神奇字符串
newwindow
。你明白了。还可以使用布尔值重载函数以打开新窗口,如果为false,则调用原始的3-arg函数,如果为true,则使用ajax

 jQuery(form.join('')).appendTo('body')[0].submit(function () {
        window.open(url,target,"menubar=1,resizable=1,width=350,height=250");
    });
GF.SubmitForm = function (url, params, target) {
        if (target === 'newwindow')
        {
            var paramsString = '';
            for (var key in params)
                paramsString += key + '=' + params[key] + '&';
            var urlCopy = url;
            jQuery.ajax({
                cache: false,
                type: 'post',
                data: paramsString,
                dataType: 'html',
                url: urlCopy
            }).done(function(data){
                var newWindow = window.open(urlCopy,target,"menubar=1,resizable=1,width=350,height=250");
                newWindow.document.write(data);
            });
            return;
        }

        // create form string using array push and join
        var form = ['<form method="POST" action="', url, '" target="', target, '">'];
        for (var key in params)
            form.push('<input type="hidden" name="', key, '" value="', params[key], '"/>');
        form.push('</form>');
        jQuery(form.join('')).appendTo('body')[0].submit();
};