我越來越瘋狂與這一個...爲什麼除了IE之外,所有瀏覽器上的XMLHttpRequest.status == 0?
我做了一個RESTful.NET Web服務與C#和運行作爲一個獨立的服務。當我創建一個XMLHttpRequest來檢索JSON數據時,除IE之外,所有瀏覽器都會失敗,因爲XMLHttpRequest實例的狀態標誌始終爲0 - 應該是200,這就是IE的情況。
我已經讀過,0是一個靜態HTML頁面誰不在網絡服務器上的正確值。所以,我安裝了Apache,並把頁面放在那裏,但結果是一樣的(我可能錯誤地解釋了這個建議......)
我運行了Fiddler,並且任何瀏覽器都能正確地檢索請求!
這裏的JavaScript代碼,我使用:
<script type="text/javascript">
var serviceURI = 'http://localhost:8889/WebService/client/25';
var xmlHttp = new XMLHttpRequest();
function clientHandler()
{
if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
{
var json = xmlHttp.responseText;
var client_id = document.getElementById('clientid');
var client_name = document.getElementById('clientname');
var client_address = document.getElementById('clientaddress');
var client_phone = document.getElementById('clientphone');
var client = eval('(' + xmlHttp.responseText + ')');
client_id.value = client.id;
client_name.value = client.name;
client_address.value = client.address;
client_phone.value = client.phoneNumber;
}
else
alert("Error:\nxmlHttp.responseText = " + xmlHttp.responseText + "\nstatus = " + xmlHttp.status);
}
function sendRequest()
{
if (xmlHttp)
{
xmlHttp.onreadystatechange = clientHandler;
xmlHttp.open('GET', serviceURI, true);
xmlHttp.setRequestHeader("Content-Type", "application/json; charset=utf-8");
xmlHttp.send(null);
}
else
alert('xmlHttp not defined!');
}
</script>
我會很高興,如果有人可以解釋我發生了什麼;我還沒有找到任何這樣的sactisfatory探討...
此外,使用jQuery這個工作框架更好嗎?
謝謝大家!
PS:我已經諮詢喬恩·弗蘭德RESTful.NET,但它並沒有解決這個幫助很大... :(
編輯:我的答案搬到了這個問題評論婁!
Goog成交!我很高興你找到答案。 – David 2010-10-31 13:52:51