1

getlink.php特定のファイルのリンクを取得するためにスクリプトを呼び出している次のコードがあります。しかし、私が行うalert(xhr.responseText)と、何も表示されません。しかし、フィールドconsole.log("my object: %o", xhr); を与えるのでコンソールに出力すると。responseTextコードは次のとおりです。

function linkFile(file) {  
    uri = "http://localhost/imgbag/getlink.php";  
    var xhr = new XMLHttpRequest();  
    var formdata= new FormData();
    formdata.append("linkFile",file);
    xhr.open("POST", uri, true);  
    xhr.send(formdata);
    console.log("my object: %o", xhr);
}
4

2 に答える 2

1

xhr.open で true を使用すると、非同期に設定されます。これは、応答が後で返されることを意味し、リスナーをアタッチして収集する必要があります。

そのパラメーターをfalseに設定すると、コードは機能します(ただし、非同期ではなく、呼び出しでブロックされます(つまり、応答が返されるまでそこに留まります)

リスナーを追加する方法は次のとおりです(非同期アプローチの方が実際には優れているため)... http://www.w3schools.com/ajax/ajax_xmlhttprequest_onreadystatechange.asp

于 2012-06-01T09:08:46.917 に答える
0

次のように属性を定義しonloadます。

xhr.onload = function () {
    alert(xhr.responseText);
}

これによりalert、リクエストが正常に完了した後にのみ実行されるようになります。

ソース: MDN

于 2012-06-01T09:15:43.553 に答える