Tabris.js XMLHttpRequests不接受响应:readystate 1

时间:2017-06-15 15:30:17

标签: javascript node.js xmlhttprequest tabris tabris-js

我有一个tabris.js应用程序,我需要连接到SQL数据库。为了做到这一点,我决定最好的选择是创建一个表达REST API,然后为它创建XMLHttpRequests。当应用程序发出请求时,API会显示已发出GET请求,甚至会响应结果。我在浏览器中对它进行了测试,结果发现结果完美无缺。问题是XHR的readystate永远不会离开1,因此永远不会调用onload / onreadystatechange。有一次,我有这个应用程序工作,所以我不知道发生了什么。我将在下面包含一些模拟API代码和Tabris.js代码。

API:

router.get('/', function(req, res) {
    res.json({Mock: 'Code'})
})

Tabris:

const xhr = new XMLHttpRequest()

xhr.onload = function() { /* Not called */ }
xhr.onerror = function() { /* Not called */ }
xhr.onabort = function() { /* Not called */ }
xhr.ontimeout = function() { /* Not called */ }

xhr.onreadystatechange = function() {
    switch (xhr.readyState) {
        case 1: console.log('opened, not sent'); break // Called
        case 2: console.log('sent, awaiting response'); break // Not called, even though the API gets the request
        case 3: console.log('response received, downloading'); break // Not called
        case 4: console.log('finished'); break // Not called
    }
}

xhr.open('GET', 'http://ip.ad.dr.ess:port/', true)
xhr.send()

我还应该补充一点,fetch API对我来说也不起作用,尽管API会收到类似的请求。

1 个答案:

答案 0 :(得分:0)

事实证明,我的代码完全一样,当我进入时它开始工作。对于遇到同样问题的人,不幸的是,除了最后一个问题,我没有给你一个坚实的答案我在开始工作之前做的事情是更新了tabris。虽然这只是替换了我自从我最新开始以来已有的文件。我也尝试在另一个网站上进行测试,这个网站似乎已经超越了以前的模块。对我来说,我使用了http://ip.jsontest.com