我正在尝试将浏览器定向到其他页面.如果我想要一个GET请求,我可能会说
document.location.href = 'http://example.com/q=a';
Run Code Online (Sandbox Code Playgroud)
但是我试图访问的资源不会正常响应,除非我使用POST请求.如果这不是动态生成的,我可能会使用HTML
<form action="http://example.com/" method="POST">
<input type="hidden" name="q" value="a">
</form>
Run Code Online (Sandbox Code Playgroud)
然后我只需从DOM提交表单.
但实际上我想要允许我说的JavaScript代码
post_to_url('http://example.com/', {'q':'a'});
Run Code Online (Sandbox Code Playgroud)
什么是最好的跨浏览器实现?
编辑
对不起,我不清楚.我需要一个改变浏览器位置的解决方案,就像提交表单一样.如果使用XMLHttpRequest可以实现这一点,那就不明显了.这不应该是异步的,也不应该使用XML,所以Ajax不是答案.
我有一个旧网站与JQuery 1.7,两天前正常工作.突然,我的一些按钮不再工作,点击它们后,我在控制台中收到此警告:
表单提交已取消,因为表单未连接
点击后面的代码是这样的:
this.handleExcelExporter = function(href, cols) {
var form = $('<form method="post"><input type="submit" /><input type="hidden" name="layout" /></form>').attr('action', href);
$('input[name="layout"]', form).val(JSON.stringify(cols));
$('input[type="submit"]', form).click();
}
Run Code Online (Sandbox Code Playgroud)
Chrome 56似乎不再支持这种代码了.不是吗?如果是,我的问题是:
PS 它在最新的firefox版本中也不起作用(没有任何消息).它也无法在IE 11.0和Edge中运行!(两者都没有任何消息)
希望你能在这里帮忙...我有一个表单翻译字段中的单词,用翻译的术语填充字段,然后在一个提交按钮中提交操作.
提交由jquery提出.问题是目标页面被阻止,因为所有3个主要浏览器都将其视为弹出窗口,您是否知道如何将其作为新选项卡或新窗口打开?我不想将目标设置为_self,因为我希望人们也可以打开我的网站.
我相信问题在于这个字符串:
document.forms.form1.submit();
Run Code Online (Sandbox Code Playgroud)
但我也知道应该有一种方法来改写它,这样目标不会被视为弹出窗口.
这是脚本:
<script type="text/javascript">
$(function transle() {
$('#transbox').sundayMorningReset();
$('#transbox input[type=button]').click(function(evt) {
$.sundayMorning(
$('#transbox input[type=text]').val(), {
source: '',
destination: 'ZH',
menuLeft: evt.pageX,
menuTop: evt.pageY
},
function(response) {
$('#transbox input[type=text]').val(response.translation);
//document.getElementById("form1").submit();
document.forms.form1.submit();
}
);
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
这是形式:
<table id="transbox" name="transbox" width="30px" border="0" cellspacing="0" cellpadding="0">
<form action="custom-page" method="get" name="form1" target="_blank" id="form1">
<tr>
<td>
<input id="q" name="q" type="text" class="search_input" onFocus="if (this.value == 'Evening dress') {this.value = '';}" onBlur="if (this.value == '') {this.value = 'Evening dress';}" value="Evening dress" />
</td> …Run Code Online (Sandbox Code Playgroud) 无论如何我可以使用jquery在浏览器中打开一个新窗口并发布到它.
原因是我的银行要求我打开支付网关并通过POST传递我的值而不是GET.
我现在有一些解决方法但不知道..我使用QUERYSTRING到一个带有一些隐藏表格的ASPX页面并将表格提交给我的银行
但它真的不好.
也许jquery可以原生或使用插件来做到这一点?
我想使用JavaScript动态插入表单,然后提交它并在新窗口中打开目标.
这是我的代码:
var form = document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", xxx);
form.setAttribute("onsubmit", "window.open('about:blank','Popup_Window','scrollbars=yes,width=550,height=520');");
form.setAttribute("target", "Popup_Window");
document.body.appendChild(form);
form.submit();
Run Code Online (Sandbox Code Playgroud)
此代码有效 - 它动态插入表单并成功提交表单.但是,表单在新选项卡中打开,而我希望它在新窗口中打开.有什么想法吗?对于如何解决这个问题,有任何的建议吗?我也对jQuery持开放态度.
谢谢!
编辑:我不确定为什么人们将此标记为重复.是的,它与其他问题在同一主题上,但答案没有关系 - 声称的重复问题有一个新的行,搞乱了代码,我没有,但我的代码仍然无法正常工作......
如果提交按钮在@using Html.BeginForm 内,有没有办法打开一个新窗口?我尝试了以下但它不起作用?
@using (Html.BeginForm("SetCol", "Document", FormMethod.Post, new {target="_blank"})){
<div class="modal-body" data-height-relative="20">
.
.
.
</div>
<div class="modal-footer">
<div class="pull-right">
<input type="submit" value="Senden" class="btn btn-primary"/>
<a href="@ViewData["closeUrl"]" class="btn btn-primary" @(ViewData["closeUrl"] == "#" ? "data-dismiss=modal" : "")>@Translations.Close</a>
</div>
</div>
}
Run Code Online (Sandbox Code Playgroud)
输出是一个 PDF 文件:
<html>
<body marginwidth="0" marginheight="0" style="background-color: rgb(38,38,38)">
<embed width="100%" height="100%" name="plugin" src="http://localhost:54906/Document/SetCol?id=108" type="application/pdf">
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 有谁知道如何执行此操作?
我的页面上有一个链接,当我点击该按钮时,我想要POST到另一个页面.我的页面上有一个表单,但它不在<form>标签中,因为数据是通过AJAX/POST发送到服务器的(这是一个搜索功能,现在我也想要一个导出功能,但这需要我加载一个单独的页面),所以我的循环收集所有输入并将其存储为对象.
所以基本上,使用GET很容易,但是如何将POST对象传递给另一个页面呢?这应该这样不使用AJAX,它应该去的页面,就好像它是一个正常的链接.
一个没有的表格<form>,这可能吗?
基本上想知道JS中是否有这样的函数:
window.location.url = ['export.php', $postData];
jquery ×5
javascript ×4
post ×2
asp.net-mvc ×1
forms ×1
html ×1
http ×1
jquery-1.7 ×1
php ×1
popup ×1
postback ×1
submit ×1