表单提交和帖子不适用于Chrome,但它适用于firefox和IE



我已经看了好几个小时了。这是我看过的。

JQuery提交在Chrome 中不起作用

我还研究了jquery提交

http://api.jquery.com/submit/

没有一个解决方案对我有效。

问题:我有一个表单,它有一个按钮,该按钮有一个调用javascript方法的onclick。然后我在页面上有另一个表单(不是在它之外的其他表单中),这是一个post表单。在该表单上的javascript中,我调用.submit()。它在Firefox和IE中工作,但在Chrome中不工作,在Chrome中它会重新加载页面并将其保持在同一页面上。Firefox和IE会正确打开带有帖子页面的新标签页。这是代码:

 <h:form id="mainForm>
  ...
     <h:commandLink id="testUrlButtonPost" onclick="submitPage()" 
        styleClass="secondaryButton" value="#{__VendorAdmin.test}"/>
  ...
</h:form>

<script type="text/javascript">
     function submitPage() {                             
         var url = $('#addEditCatalogForm\:baseURL').val();
         document.getElementById("TestForm").action=url;
         $('#TestForm').submit();
     }
</script>

<form id="TestForm" name="TestForm" action="" method="post" target="_blank">
     <ui:repeat value="#{vendorCatalogView.punchOutCatalog.urlParameters}" var="parameter">
         <input type="hidden" name="#{parameter.name}" value = "#{parameter.value}"/>
     </ui:repeat>
</form>

我也试过:

  1. $('form#TestForm').submit()
  2. 在submit so submit中放入东西(函数(事件){…});这使得它在任何浏览器中都不起作用
  3. document.getElementById("TestForm").submit()

im使用JSF和素数面。

更新:!!!所以我在铬检查元件工具中注意到了这个错误:

net::ERR_INSECURE_RESPONSE我查了一下,它似乎处理ssl证书?但问题是,该网站是一个打卡目录搜索,将有很多链接到使用post的外部目录。因此,我不能只手动添加ssl证书,也不希望我们的客户必须这样做。有什么解决办法吗?

因此,在反复寻找没有解决方案的情况下,我开始尝试一些微小的调整。我找到了解决办法。

更改

<h:commandLink id="testUrlButtonPost" onclick="submitPage()" 
    styleClass="secondaryButton" value="#{__VendorAdmin.test}"/>

到Primefaces命令链接,并将onclick更改为oncomplete,这对chrome来说就是这样。

<p:commandLink id="testUrlButtonPost" oncomplete="submitPage()" 
    styleClass="secondaryButton" value="#{__VendorAdmin.test}"/>

所以现在它适用于chrome、firefox和IE。除非您有强制选项卡的扩展,否则chrome会在新窗口中打开。

最新更新