タイトルに私のAjax呼び出しが実際にフォームをデフォルトのアクションに送信させていると述べているのに、なぜですか?私はこれまでこれに出くわしたことがありません。他のすべてのajax呼び出しがこれを行ったことはありません。
function newAjax(t、u){// t = type(post / get)、u = url
var resource = null;
if(window.ActiveXObject){
リソース=新しいActiveXObject( "Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest){
リソース=新しいXMLHttpRequest();
resource.overrideMimeType('text / html');
}
resource.open(t、u、false);
resource.setRequestHeader('Content-Type'、'application / x-www-form-urlencoded; charset = UTF-8');
リソースを返します。
}
関数send_newsletter(){
formObj = document.getElementById( "news_form");
var input = formObj.getElementsByTagName( "INPUT");
var parameters = "";
for(i = 0; i <inputs.length; i ++){
パラメータ+=input [i] .name + "=" + encodeURI(inputs [i] .value);
if(i!= input.length-1){
パラメータ+="&";
}
}
var url = "whereitshouldbegoing.com";
var ajax = newAjax( "POST"、url);
ajax.onreadystatechange = ajaxResult;
ajax.setRequestHeader( "Content-length"、parameters.length);
ajax.setRequestHeader( "Connection"、 "close");
ajax.send(parameters);
}
フォームを送信するバガーである.send行まではすべて正常に機能します(ajaxリクエストが実際にオフになるかどうかもわかりません)。
send_newsletter関数は、onclick = "send_newsletter()"を使用してinput type="image"要素から呼び出されます。
jQueryや他のライブラリを使用するように言わないでください。私が望む限り、外部ライブラリや企業ガイドラインなどを使用することはできません。