问题描述
项目中需要集成支付宝接口 发送数据手动提交的时候正常的 但是需要自动提交 就是打开页面自动提交form到支付宝就没反应了 这是支付页面的表单:<form id="payform" name="payform" action="http://www.alipay.com/cooperate/gateway.do?_input_charset=utf-8" method="POST" target="_blank"> <input type="hidden" name="body" value="用于测试的商品" /> ...等等 一系列订单信息.... <input type="submit" name="submit" value="马上支付" /></form><script>document.payform.submit();</script>手动点击"马上支付"的时候,订单可以正确提交但是<script>document.payform.submit();</script>这个自动提交form的脚本却不能自动提交.需要打开这个页面就自动提交form请问,问题出在哪里? 测试的浏览器是safari. 问题补充:chinahnzhou 写道
解决方案
你试试看,我在五大浏览器里面都测试了,没有任何问题。<html><head> <title>自动测试表单提交</title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script> <script> $(document).ready(function() { //alert('b'); setTimeout(function(){$('#payform').submit();},0); }); </script></head><body> <form id="payform" action="http://www.google.com.hk"> </form></body></html>
解决方案二:
楼上的解答应该是对的,但他使用了 jquery, 如果你没有引入 jquery 可以这么着:window.onload = function() { document.payform.submit();}
解决方案三:
我觉得你可以用HTTPWATCH看下自动提交和手动提交的参数传递到底有什么差异?肯定是在参数传递上出现了问题
解决方案四:
我也同意chinahnzhou的说法,因为<script>document.payform.submit();</script>执行的时候,文档可能还没有加载完成,如果你仔细看的话, 应该会报JS错。
解决方案五:
这样做试试看.<script>$(document).ready(function() { setTimeout(function(){$('#payform').submit();},0);});</script>