表单提交帖子不在Chrome中工作,但它适用于Firefox和IE

时间:2014-11-05 00:11:07

标签: jquery forms google-chrome post submit

我一直在看这个好几个小时。这是我看过的那个。

JQuery submit not working in Chrome

我也查看了jquery提交

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

没有一个解决方案适合我。

问题:我的表单中有一个按钮,其中包含一个调用javascript方法的onclick。然后我在页面上有另一个表单(不是在其他表单之外),这是一个帖子表单。在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. $( '形式#TESTFORM')。提交()
  2. 将东西放入提交中以便提交(function(event){...});那个使它无法在任何浏览器中工作
  3. 的document.getElementById(“TESTFORM).submit();
  4. 我正在使用JSF和primefaces。

    更新:!!! 所以我在chrome inspect element工具中注意到这个错误:

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

1 个答案:

答案 0 :(得分:0)

因此,在没有解决方案的情况下寻找和寻找后,我开始尝试微小的调整。我找到了解决方案。

更改

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

到Primefaces commandLink并将onclick更改为oncomplete并将其更改为chrome。

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

所以现在它适用于chrome,firefox和IE。 Chrome会在新窗口中打开,除非您有一个强制标签的扩展程序。