filerag.jsによって提供されるコードから始めて、アップロード ファイルの非同期関数を実装しました。
問題は、呼び出しが完了するとテキストを取得できないことです。POSTリクエストが完了するとfirebugコンソールに表示されるため、実際にはテキストが返されると確信しています。問題は、私のコードがそれをページに追加しないことです。
コードは次のとおりです。
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
function showHint(str,action,target,url) {
xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("enctype","multipart/form-data");
var fd = new FormData;
fd.append('filexls', str);
xmlhttp.send(fd);
console.log(xmlhttp.status);
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
$('#successup').html(xmlhttp.responseText);
}
}
私はいくつかのテストを行いましたが、問題はコードの最後の部分にあると思います。ステートメントのconsole.log(xmlhttp.status)
前に配置すると、返されます(リクエストの最後にある firebug が返されます) が、中に配置すると、コンソールには何も表示されません。したがって、問題は、実際のリクエストが実行される前にステートメントが実行され、返されることです。if
0
200
if
if
false