我正在编写一个事件,当用户单击链接时,数据的有效负载将发送到服务器,并使用重定向到另一个页面的函数进行回调。
这里的问题是:在成功完成XHR之前,我不能停止对链接进行过早重定向。我在活动结束时放了,但它不起作用。
请注意,如果我使用JQuery版本,则效果很好。但是不支持JS vanilla。
请帮我解决这种情况。预先感谢!
var button = document.getElementsByClassName('class');
if (button[0] != undefined) {
button[0].addEventListener("click", submitDataDemo);
}
function submitDataDemo() {
``
`
get and format the data
`
``
var sendDataRequest2 = new XMLHttpRequest();
sendDataRequest2.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
window.location.href = 'The success page';
}
};
sendDataRequest2.open('POST',
'server',
true);
sendDataRequest2.setRequestHeader('Content-type', 'application/json');
sendDataRequest2.send(payLoad);
return false;
}
最佳答案
您需要preventDefault
:
function submitDataDemo(event) {
event.preventDefault()
// ...rest of function
}
https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault