webservice代码:
[WebMethod]
public string HelloWorld()
{
return "Hello world";
}
JS代码:
<script type="text/javascript" language="javascript" >
WebService.HelloWorld( function sucess(res){alert(res);},
function failed(res){alert(res);},
"调用web服务");
</script>
asp.net代码:
<asp:ScriptManager ID="ScriptManager1" runat="server" >
<Services>
<asp:ServiceReference Path="WebService.asmx" />
</Services>
</asp:ScriptManager>
结果错误是:WebService没有定义。
------解决方案--------------------------------------------------------
js调用webserver要先写命名空间再写类名,再写方法名格式为:
命名空间.类名.方法名
------解决方案--------------------------------------------------------
你有没有在scriptmanager中reference这个服务阿?
还有就是你建的服务是不是在WebService文件夹里?
------解决方案--------------------------------------------------------
<script language="javascript" type="text/javascript">
var xmlHttp;
function createHttpReques()
{
if(window.ActiveXObject)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp=new XMLHttpRequest();
}
else
{
alert("创建对象失败,请更换浏览器");
}
}
function GetCity(obc)
{
createHttpReques();
var id=obc.options[obc.selectedIndex].value;
xmlHttp.open("GET","WebService1.asmx/GetCity?id="+id,true);
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
var obj = xmlHttp.responseXML;
var cc = document.getElementById("DropDownList2");
ClearItem(cc);
var dd = document.getElementById("DropDownList3");
ClearItem(dd);
var ary = obj.getElementsByTagName("City");
alert(ary.length);
for (i = 0; i < ary.length; i++) {
var optio = document.createElement("option");
optio.text = ary[i].getElementsByTagName("CityName")[0].firstChild.nodeValue;
optio.value = ary[i].getElementsByTagName("CityID")[0].firstChild.nodeValue;
cc.options.add(optio);
}
}
}
xmlHttp.send(null);
}
------解决方案--------------------------------------------------------
webservice的CS页面的代码有没有加上[ScriptService]标签啊,如果没有的话不能被JS调用的,楼主检查一下
/// <summary>
/// 说明
/// </summary>
[WebService(Namespace = "SysTest/MyService.asmx")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class MyService: System.Web.Services.WebService {
.......
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
加上这个[System.Web.Script.Services.ScriptService]命名空间就可以了!!!呵呵
------解决方案--------------------------------------------------------