正如标题所述,我的 Ajax 调用实际上导致表单提交到其默认操作,为什么?我以前从未遇到过这种情况,我所有其他的 ajax 调用都没有这样做过。
function newAjax(t,u){ //t = type(post/get), u = url var资源=空; 如果(窗口。ActiveXObject){ 资源 = 新 ActiveXObject("Microsoft.XMLHTTP"); } 否则如果(window.XMLHttpRequest){ 资源 = 新 XMLHttpRequest(); resource.overrideMimeType('text/html'); } 资源.open(t,u,false); resource.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); 返回资源; } 函数 send_newsletter(){ formObj = document.getElementById("news_form"); var 输入 = formObj.getElementsByTagName("INPUT"); var 参数 = ""; for(i = 0; i < 输入长度; i++){ 参数 += 输入[i].name+"="+encodeURI(inputs[i].value); 如果(我!=输入。长度-1){ 参数 += "&"; } } var url = "whereitshouldbegoing.com"; var ajax = newAjax("POST",url); ajax.onreadystatechange = ajaxResult; ajax.setRequestHeader("内容长度", parameters.length); ajax.setRequestHeader("连接", "关闭"); ajax.send(参数); }
在 .send 行之前一切正常,这是导致表单提交的错误(我也不知道 ajax 请求是否真的成功了)。
从带有 onclick="send_newsletter()" 的 input type="image" 元素调用 send_newsletter 函数
请不要告诉我使用 jQuery 或其他库,尽管我很愿意,但我们不能使用任何外部库、公司指南等等。