我有一個tabris.js應用程序,我需要連接到SQL數據庫。爲了做到這一點,我決定最好的選擇是創建一個快速的REST API,然後對其進行XMLHttpRequests。當應用程序發出請求時,API會顯示已發出GET請求,甚至會響應結果。我在瀏覽器中測試過,發現結果完美無缺。問題是XHR的readystate從不離開1,因此onload/onreadystatechange永遠不會被調用。有一次,我有這個應用程序工作,所以我不知道發生了什麼。我將在下面包含一些模擬API代碼和Tabris.js代碼。Tabris.js XMLHttpRequests不接受響應:readystate 1
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()
我還要補充的是,獲取API不工作對我也同樣,雖然該請求被接受的API。
你能打印收到的請求頭嗎? – Moritz
Access-Control-Allow-Origin:*,連接:保持活動,日期:(日期),X-Powered-By:Express –
是否有可能打到本地服務器並且該端口未打開以便連接從外面?即使您使用的是本地網絡ip(192.168 ....),您仍然需要打開一個端口才能通過同一網絡上的電話或模擬器連接到該服務器。 – Dested