来自本地文件的XMLHttpRequest send()返回undefined with Workers

时间:2018-04-17 12:04:27

标签: javascript xmlhttprequest web-worker


我通过处理工人遇到问题,当我发出请求时XMLHttpRequest()发送返回null,但onload方法返回我在调用send时预期的文件。我究竟做错了什么? 这是代码:

function pegarDados(){
    let requisicao = new XMLHttpRequest();
    requisicao.overrideMimeType('text/plain'); 
    requisicao.setRequestHeader('X-Requested-With', 'JSONHttpRequest');
    requisicao.open('GET','./assets/data/dados.json', false);
    requisicao.onload = function(){
        return JSON.parse(this.response);
    };  
    let resultado = requisicao.send();
    return resultado.responseText;   
}
self.onmessage = function (event) {
    if(event.data == 'lista'){
        let dados = pegarDados();
        console.error(dados);
        self.postMessage(dados);
    }
}

1 个答案:

答案 0 :(得分:0)

XMLHttpRequest.send()actually has a return value of undefined

在您的代码中,您尝试通过执行以下操作为设置分配请求的值:

let resultado = requisicao.send();

显然会将undefined分配给变量。

你在xhr.onload做了什么,我也会这样做,我真的不明白为什么你想要两种回归方法。

看着你使你的xhr不是异步的,你可以这样做:

requisciao.send();
return requisciao.responseText;