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

时间:2014-08-14 17:21:26

标签: 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)
        form.push('<input type="hidden" name="', key, '" value="', params[key], '"/>');
    form.push('</form>');
    jQuery(form.join('')).appendTo('body')[0].submit();
}

我应该怎么做才能在新的弹出窗口中打开响应数据。

使用以下粘贴代码替换上述函数中的最后一行代码,但没有工作

 jQuery(form.join('')).appendTo('body')[0].submit(function () {
        window.open(url,target,"menubar=1,resizable=1,width=350,height=250");
    });

1 个答案:

答案 0 :(得分:1)

您无法使用window.open()使用GE.SubmitForm()打开新窗口。使用Ajax是一个可以帮助您避免其他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(); };

调用者的副作用的选项
newwindow

原谅需要target值的魔术字符串{{1}}。你明白了。您还可以使用布尔值重置函数以打开新窗口,然后调用原始3-arg函数(如果为false),并使用ajax(如果为true)。