【发布时间】:2016-06-16 15:45:50
【问题描述】:
我在 javascript 中使用 XMLHttpRequest 向本地服务器发出 HTTP 请求。这是我正在使用的代码。
var xhr = new XMLHttpRequest();
xhr.open("POST", "//localhost:5000/translate", true);
xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
xhr.setRequestHeader("Content-Type", "application/json; charset=UTF-8");
xhr.send(JSON.stringify({"sentence":str}));
xhr.onreadystatechange = processRequest;
function processRequest(e)
{
if (xhr.readyState == 4)
{
console.log('trans_res set');
trans_res = xhr.responseText; // here trans_res is a global variable
return String(xhr.responseText);
}
}
我希望这个函数返回 responseText 以便我可以在其他地方使用它。
为此我尝试了两种方法, 1)我尝试返回响应并在控制台中打印响应
var temp = function(string)
console.log(temp)
但是临时变量在控制台中是未定义的,我认为主要是因为在涉及到 console.log 之前它尚未设置(未返回响应)
2)我放了一个全局变量(trans_res)并在函数中设置并打印出来
var temp = function(string)
console.log(trans_res)
但它也未定义。
我怎样才能确保我返回响应,如果我需要在两者之间的某个地方停止执行也没关系,但我想要一个有效的响应。
【问题讨论】: