我有一個谷歌的Chrome擴展程序(瀏覽器操作)發送彈出的形式投入到我的流星網站/應用程序的數據庫。 (上Log in to a meteor app from a Google chrome extension爲主。)不一致XHR流星託管網站(meteor.com)
上popup.js的XHR代碼:
$(document).ready(function() {
$('#form').on('click','#submitForm',function() {
var xhr = new XMLHttpRequest();
var data = {
"field1": $('#input1').val(),
"field2":$('#input2').val(),
};
xhr.open("POST", "http://MYAPPNAME.meteor.com/extension/post", true);
xhr.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
xhr.send(JSON.stringify(data));
});
});
代碼工作非常零星。通常在第四次嘗試時(即,表格的四次提交)。
什麼引起這種不一致?它只是meteor.com上免費託管緩慢的一個方面?我可能會切換到自定義域名(付費服務器上),但最好在付款前確保功能。
編輯
我添加事件偵聽器XHR錯誤(從https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest),按克桑的建議。
xhr.addEventListener("progress", updateProgress, false);
xhr.addEventListener("load", transferComplete, false);
xhr.addEventListener("error", transferFailed, false);
xhr.addEventListener("abort", transferCanceled, false);
現在每次都會出現「中止」(transferCanceled)警報。但是,數據仍會偶爾發送(即使出現錯誤警報)。
這是任何說明?有沒有更好的方法來提醒錯誤?
我總是寧可持懷疑態度,當涉及到發送,而不是「正常」的URL參數,如'field1的=值1&Field2則=數值JSON '。你嘗試過嗎? – devnull69 2014-12-03 07:16:53
爲XHR上的錯誤添加偵聽器,並在可能的情況下檢查服務器日誌。沒有這些信息很難診斷。 – Xan 2014-12-03 09:02:58
@Xan新增聽衆。見上面的編輯。無法訪問服務器日誌,但會嘗試使用localhost。 – AvidSnacker 2014-12-03 23:36:45