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