我正在尝试使用JSONP在服务器B的页面上提交表单时将数据推送到服务器A.
这是我的JS -
my.submitOrder = function () {
var scriptTag = document.createElement('SCRIPT');
scriptTag.src = ServerAUrl + "?" + urlData;
scriptTag.type = "text/javascript";
scriptTag.async = 0;
document.getElementsByTagName('HEAD')[0].appendChild(scriptTag);
};
我希望当用户提交表单时执行此js,所以这里是我认为可以完成工作的HTML -
<form action="http://localhost:3348" onsubmit="return my.submitOrder();" >
<input type="submit" value="submit" />
</form>
提交正常,submitOrder函数执行,但我对ServerAUrl的调用在它到达服务器A之前被“取消”(根据firebug)。实际上,它成功了大约1次中的5次,但是没有似乎是一种模式。我知道谷歌分析可以做到这一点。有什么想法吗?
答案 0 :(得分:1)
您没有阻止提交事件,因此通常会在加载目标页面时发送表单。在卸载过程中,打开请求(例如JSONP脚本)被取消。
要阻止事件的默认操作,请调用其preventDefault
方法(特别是在使用内联处理程序时使用advanced event registration或return false
时)。目前,您正在返回{{1 }}