2016-03-05 57 views
1

在我自己的項目上工作。我發送一個XMLHttpRequest到本地主機從Firefox 44到XAMPP。我的狀態爲0,狀態爲1.下面是有問題的代碼。XHR狀態0,本地主機上的readystate 1

function sendReq(php,segment){ 
    alert("sendreq called "); 
    //we out here getting 0 statuses. check out cwd, check out what php value is, 
    xhr.open("POST", php, true); 
    xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
    xhr.onreadystatechange = getData(segment); 
    xhr.send(); 
} 

//callback function for ajax request. 
function getData(div){ 
    if ((xhr.readyState == 4) && (xhr.status == 200)) 
    { 
     var serverResponse = xhr.responseText; 
     div.innerHTML = serverResponse; 
    }else{ 
     div.innerHTML = "<p>loading!</p> ready state: " + xhr.readyState +"</br> status: "+ xhr.status; 
    } 
} 

我讀過別處RS:1/S:0 XHR屬性指示不成功跨域請求,但這是所有存在的在本地主機上,與所述文件都在同一個目錄中,和檢查時在Firebug中的XHR響應,返回文本在那裏。

我已經建立了一個登錄到這個頁面幾乎相同的代碼,它的工作原理,它只能指向一個不同的.php文件。比較兩者和谷歌搜索並沒有啓發我。所以任何建議都是值得歡迎謝謝!

回答

0

您正在執行getData()函數一次,在頁面加載中,並將undefined返回到onreadystatechange處理程序,因爲這會在添加括號時發生。

它必須要麼

xhr.onreadystatechange = getData; 

注意缺少括號,或者如果你有來傳遞參數

onreadystatechange = function() { 
    getData(segment); 
} 
+0

哇,這是忽略了一個令人沮喪的事情。我不知道包含()會調用該函數。我可悲的是沒有受過教育或者是什麼。 感謝您的幫助。 – spkvn

相關問題