我有以下代码,我正在调用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);
}
答案 0 :(得分:1)
当你在xhr.open中使用true时,它将它设置为异步,这意味着响应将在稍后返回,你需要通过附加一个监听器来收集它。
如果你将那个param设置为false,你的代码就可以工作(但是不会异步并且会阻塞它(意味着它只会坐在那里直到响应回来)
这里是如何添加一个监听器(因为你的异步方法实际上是更好的方法)... http://www.w3schools.com/ajax/ajax_xmlhttprequest_onreadystatechange.asp
答案 1 :(得分:0)
像这样定义onload
属性:
xhr.onload = function () {
alert(xhr.responseText);
}
这可确保alert
仅在请求成功完成后才会发生。
资料来源:MDN