我有一个我需要连接到 SQL 数据库的 tabris.js 应用程序。为此,我决定最好的选择是创建一个快速 REST API,然后对其进行 XMLHttpRequests。当应用发出请求时,API 会显示已发出 GET 请求,甚至会返回结果。我在浏览器中对其进行了测试,发现结果完美返回。问题是 XHR 的 readystate 永远不会离开 1,因此永远不会调用 onload/onreadystatechange。有一次我让这个应用程序正常工作,所以我不知道发生了什么。我将在下面包含一些模拟 API 代码和 Tabris.js 代码。
接口:
router.get('/', function(req, res) {
res.json({Mock: 'Code'})
})
塔布里斯:
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()
我还应该补充一点,获取 API 对我也不起作用,尽管 API 接收到了类似的请求。