我正在这里进入一个小果酱。我使用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