我正在這裏進入一個小果醬。我使用C#創建了一個web服務。當我調用WebService時,它工作正常。 JavaScript似乎擊中了Web服務,打破了,然後繼續執行其餘的操作。我認爲這是我調用WebService錯誤的問題。我搜遍了各地,發現了很多不同的例子,但是,它們都沒有效果。從Ajax/Javascript調用WebService
如果你去http://success.darkslidedesign.com它觸發test.js然後調用設在這裏我的web服務:http://www.darkslidedesign.com/services/ms_Alert.asmx
這裏是test.js碼 -
var xmlHttp;
setTimeout("sendMessage('[email protected]');", 2000);
function doUpdate()
{
if(xmlHttp.readyState===4){
alert("Worked");
}
else{
alert("Broke");
}
}
function sendMessage(strTo)
{
try{
// Opera 8.0+, Firefox, Safari
xmlHttp = new XMLHttpRequest();
} catch (e){
// Internet Explorer Browsers
try{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
// Ajax is not supported
return false;
}
}
}
xmlHttp.open("post", "http://www.darkslidedesign.com/services/ms_Alert.asmx", true);
var params = "op=Sending_Email&[email protected]&strEmailAddrTo=" + strTo;
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", params.length);
xmlHttp.setRequestHeader("Connection", "close");
xmlHttp.onreadystatechange=doUpdate;
xmlHttp.send(params);
return false;
}
我強烈建議使用jQuery的廣泛而輕量級的AJAX庫:http://api.jquery.com/jQuery.ajax/ – pixelbobby 2011-05-04 17:57:04
獲取readystate!= 4並不意味着它已經破壞;它只是意味着請求尚未完成加載。另外,嘗試使用兩個等號而不是三個。 – lazycs 2011-05-04 17:57:39
@lazycs:通常在JavaScript中,您應該始終使用3個等號進行測試相等。否則,由於類型強制,您可能會收到意想不到的結果。 – Tom 2011-05-04 18:44:39