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

Javascript Tabris.js XMLHttpRequests不接受响应:readystate 1,javascript,node.js,xmlhttprequest,tabris,tabris-js,Javascript,Node.js,Xmlhttprequest,Tabris,Tabris Js,我有一个tabris.js应用程序,需要连接到SQL数据库。为了做到这一点,我决定最好的选择是创建一个快速RESTAPI,然后对其进行XMLHttpRequests。当应用程序发出请求时,API会显示已发出GET请求,甚至会给出响应结果。我已经在浏览器中测试了它,发现返回的结果完美无缺。问题是XHR的readystate从不离开1,因此永远不会调用onload/onreadystatechange。我曾经让这个应用程序运行,所以我不知道发生了什么。下面我将包括一些模拟API代码和Tabris.j

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

API:

塔布里斯:

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收到了类似的请求。

因此,我的代码完全没有变化,今天早上我进来时它就开始工作了。对于任何遇到同样问题的人,不幸的是我没有一个可靠的答案给你,除了我在它开始工作之前做的最后一件事是更新tabris。虽然这只会替换我从最新开始就有的文件。我还试着在另一个网站上测试它,这似乎让它通过了之前的障碍。对我来说,我使用了

,结果是,我的代码完全没有变化,今天早上我进来的时候它就开始工作了。对于任何遇到同样问题的人,不幸的是我没有一个可靠的答案给你,除了我在它开始工作之前做的最后一件事是更新tabris。虽然这只会替换我从最新开始就有的文件。我还试着在另一个网站上测试它,这似乎让它通过了之前的障碍。对我来说,我使用了

你能打印收到的请求头吗?访问控制允许来源:*,连接:保持活动状态,日期:(日期),X-Powered-By:expression是否可能你正在访问本地服务器,并且该端口未打开,无法从外部连接?即使您使用的是本地网络ip(192.168…),您仍然需要打开一个端口从同一网络上的电话或模拟器连接到该服务器。是的,就像我说的,我可以从该端口上的浏览器连接到该服务器。您使用哪个版本的Tabris.js?该框架即将发布2.0版,如果您每晚都使用,一些幕后更改将需要与本机客户端和npm模块完全相同的版本。如果您在某一天使用npm模块,而在另一天使用客户端,则可能会导致这些问题。因此,更新总是第一件要尝试的事情。您能打印收到的请求头吗?访问控制允许来源:*,连接:保持活动状态,日期:(日期),X-Powered-By:express是否可能您正在访问本地服务器,并且该端口未打开,无法从外部连接?即使您使用的是本地网络ip(192.168…),您仍然需要打开一个端口从同一网络上的电话或模拟器连接到该服务器。是的,就像我说的,我可以从该端口上的浏览器连接到该服务器。您使用哪个版本的Tabris.js?该框架即将发布2.0版,如果您每晚都使用,一些幕后更改将需要与本机客户端和npm模块完全相同的版本。如果您在某一天使用npm模块,而在另一天使用客户端,则可能会导致这些问题。因此,更新总是第一件要尝试的事情。
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()