相关疑难解决方法(0)

JavaScript发布请求,如表单提交

我正在尝试将浏览器定向到其他页面.如果我想要一个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不是答案.

javascript forms post http submit

1465
推荐指数
17
解决办法
139万
查看次数

获取错误"表单提交已取消,因为表单未连接"

我有一个旧网站与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似乎不再支持这种代码了.不是吗?如果是,我的问题是:

  1. 为什么这突然发生了?没有任何弃用警告?
  2. 此代码的解决方法是什么?
  3. 有没有办法强制chrome(或其他浏览器)像以前一样工作而不更改任何代码?

PS 它在最新的firefox版本中也不起作用(没有任何消息).它也无法在IE 11.0和Edge中运行!(两者都没有任何消息)

javascript jquery google-chrome jquery-1.7

138
推荐指数
9
解决办法
12万
查看次数

在新窗口中打开页面,没有弹出窗口阻止

希望你能在这里帮忙...我有一个表单翻译字段中的单词,用翻译的术语填充字段,然后在一个提交按钮中提交操作.

提交由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)

javascript jquery popup

39
推荐指数
4
解决办法
10万
查看次数

Jquery - 如何打开一个窗口并发布到它?(银行处理页面需要 - 不接受查询字符串)

无论如何我可以使用jquery在浏览器中打开一个新窗口并发布到它.

原因是我的银行要求我打开支付网关并通过POST传递我的值而不是GET.

我现在有一些解决方法但不知道..我使用QUERYSTRING到一个带有一些隐藏表格的ASPX页面并将表格提交给我的银行

但它真的不好.

也许jquery可以原生或使用插件来做到这一点?

jquery post postback

11
推荐指数
1
解决办法
3万
查看次数

如何将表格提交到新窗口?

我想使用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持开放态度.

谢谢!

编辑:我不确定为什么人们将此标记为重复.是的,它与其他问题在同一主题上,但答案没有关系 - 声称的重复问题有一个新的行,搞乱了代码,我没有,但我的代码仍然无法正常工作......

javascript jquery

5
推荐指数
2
解决办法
1万
查看次数

如何使用 Html.BeginForm 打开新窗口

如果提交按钮在@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)

html asp.net-mvc

2
推荐指数
1
解决办法
5461
查看次数

如何在没有<form>和AJAX的情况下发布到新页面?

有谁知道如何执行此操作?

我的页面上有一个链接,当我点击该按钮时,我想要POST到另一个页面.我的页面上有一个表单,但它不在<form>标签中,因为数据是通过AJAX/POST发送到服务器的(这是一个搜索功能,现在我也想要一个导出功能,但这需要我加载一个单独的页面),所以我的循环收集所有输入并将其存储为对象.

所以基本上,使用GET很容易,但是如何将POST对象传递给另一个页面呢?这应该这样使用AJAX,它应该去的页面,就好像它是一个正常的链接.

一个没有的表格<form>,这可能吗?


基本上想知道JS中是否有这样的函数:
window.location.url = ['export.php', $postData];

php jquery

-1
推荐指数
1
解决办法
107
查看次数