javascript登录表单提交
javascript logging on form submit
在我维护/开发的几个网站中,我们使用worldpay作为支付网关。我们有人遇到了一些奇怪的问题。所以我试着记录一些东西,但我实现的记录不太有效。
用户遇到的问题是,他们应该被重定向到worldpay网站,所以magento插件生成了一个带有隐藏字段的简单表单。然后在页面加载事件中提交表单。表单操作url设置为worldpay url。所以这基本上是一个邮寄请求,订单信息被发送到worldpay。
现在,对于一些人来说,这种情况每天都会发生,worldpay网关永远不会加载。他们被卡在一个隐藏表单的页面上,上面写着"请等待我们重定向您"。我们让人们等了几分钟才真正被重定向。
我决定每当用户花在表单上的时间超过3秒时,就开始记录表单中的各种内容
<body onload="javascript:document.worldpay_checkout.submit()">
然后我有这些线路
function timerFunction(){
var dataObj = {};
for (var i = document.worldpay_checkout.elements.length - 1; i >= 0; i--){
dataObj[document.worldpay_checkout.elements[i].name] = document.worldpay_checkout.elements[i].value;
}
dataObj["BrowserCodeName="] = navigator.appCodeName;
dataObj["BrowserName="] = navigator.appName;
dataObj["BrowserVersion="] = navigator.appVersion;
dataObj["CookiesEnabled="] = navigator.cookieEnabled;
dataObj["Platform="] = navigator.platform;
dataObj["UserAgentHeader="] = navigator.userAgent;
$.post("/worldpaylog/worldpaylog.php", dataObj, function(data) {
document.worldpay_checkout.submit();
intervalId = self.setInterval('timerFunction()',5000);
});
self.clearInterval(intervalId);
}
var intervalId = self.setInterval('timerFunction()',3000);
我尝试做的是获取表单元素和一些浏览器信息,并在超过3秒时通过发出ajax post请求将其记录在服务器上。然后我重新提交了表格。它看起来很直接,但仍然有很多人。他们没有获得worldpay,也没有被脚本记录。可能是在某些浏览器上,javascript在提交表单后不可靠吗?在浏览器开始期望加载新页面或其他什么之前。
此外,还有一个缩小的jquery框架,它只包含ajax函数在该页面上工作所需的组件。出于绝望,我在github上发现了它,当时我认为我之前写的东西并不能在所有浏览器上运行。但一切都一样。
有人暗示我应该在这里做什么吗?也许是关于记录这些数据的不同方法的想法?
错误的最可能原因是存在一个JavaScript错误,该错误会杀死脚本,因此您无法进行重定向和日志记录。注意jQueryajax请求错误是否会被毫无问题地吞噬,并确保检查您的代码是否能在尽可能多的浏览器中工作。
您可以通过向window.onerror注册事件处理程序来暂时尝试记录页面上引发的错误。并非所有浏览器都支持此事件或会在所有错误时触发此事件,但如果您无法通过自己的测试自行识别客户端上的JavaScript错误,则它提供了一个起点来探测这些错误。
- HTML表单提交时未执行外部函数
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 将图像上传ajax与表单提交ajax相结合
- Javascript无法处理表单提交
- 如何在我的情况下禁用表单提交
- 加载后的页面与ajax表单提交不起作用
- angularjs-控制器在表单提交时未调用
- 禁用带有字符白名单的表单提交
- 如何使用Google Analytics跟踪表单提交
- 使用javascript将表单提交到iframe目标中
- e.preventDefault在表单提交时被忽略
- AngularJS JQuery Ajax表单提交等效
- JavaScript表单提交帮助
- PHP表单提交和重定向
- 当所有输入文本字段都为空时,禁止表单提交,但当jquery中的任何字段不为空时允许提交
- javascript登录表单提交
- 美元.fieldValue不是登录表单提交时的函数警告
- 登录表单提交按钮不工作
- 登录表单提交的Javascript函数
- 使用AJAX登录vs完整表单提交(重新加载完整页面)