背景
用户填完提交表单,后台验证数据。验证通过,前端JS在页面加载时自动post并打开一个新的页面,新的页面时第三方支付平台的页面。验证出错,在当前页面显示错误提示。
#if(canPost)
<script>
$("#payForm").submit()
</script>
#end
问题
每次post时都会被浏览器block,生成了很多无用的支付订单。经研究尝试发现是因为没有点击任何页面组件,页面加载时自动提交打开新窗口的问题,改为AJAX验证,验证通过,返回后打开新页面,同样也被block。
解决
1.新建一个中间页面
2.用户点击按钮,不经任何验证在新窗口中打开中间页面,后台验证数据。
3.验证通过,中间页面直接在中间窗口post到第三方支付平台,验证不通过,在中间页面提示验证错误。