我最近開始學習AJAX,並且正在嘗試一個非常簡單的項目,它涉及捕獲一些表單數據並將其發送到兩個服務器。AJAX新手,在服務器上發佈數據
第一臺服務器是承載網站和服務器端php處理的服務器。這很好
第二個服務器是一個python基本http服務器,它只處理從AJAX發送的POST操作請求。該功能有效,但有點奇怪。
讓我來解釋一下
這是我的AJAX代碼,它是絕對直接的。
function xml_http_post(url, data) {
var req = false;
try {
// Firefox, Opera 8.0+, Safari
req = new XMLHttpRequest();
}
catch (e) {
// Internet Explorer
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
alert("Your browser does not support AJAX!");
return false;
}
}
}
req.onreadystatechange = function() {
if (req.readyState == 4) {
// callback(req);
}
}
req.open("POST", url, true);
req.setRequestHeader("Content-type","text/plain");
req.send(data);
}
由於我不打算髮回任何迴應,因此就緒狀態更改的回調函數爲空。
但是,當我執行此代碼(由按鈕上的onclick觸發),POST不起作用,服務器似乎沒有收到任何東西。
但最令人驚訝的是,如果我在req.open()中保留一個斷點,然後執行手動步驟執行,那麼它總是有效。這意味着,我想有一些時間問題需要解決。
如果第三個參數「async」設置爲false,但它無論如何都是不合需要的,所以我想使它與async = true一起工作,它工作正常,沒有斷點。
任何幫助將不勝感激。
感謝 希亞姆
您確定自己沒有違反Cross Domain政策嗎? – Jay