在做项目的时候碰到了这个问题, 以前做练习的时候没出现过这种问题,于是就郁闷了,到网上一查,还真找到了原因,原来只要注释掉下面一句话就行了
//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。。下面是解决我问题的文章,转载在下面。
jQuery.ajax( options )
有很多选项,介绍其中的几个:
·dataType:想从服务器得到哪种类型的数据。xml,html,script,json,jsonp,text
·success:请求成功后的处理函数
·type:以POST或GET的方式请求。默认GET。PUT和DELETE也可以用,但并不是所有的浏览器都支持
·url:请求的目的地址,须是一个字符串。
·complete:不管请求成功还是错误,只要请求完成,可以执行的事件。
·beforeSend:传递异步请求之前的事件。
·contentType:不能为空,
·data:传递参数,即使data为空,也要带空参数
注【在.net3.5中,访问web服务,要对web服务添加修饰:[System.Web.Script.Services.ScriptService] 否则,当.ajax()请求服务时,会有异常:只能从脚本中调用在类定义上有[ScriptService]属性的 Web 服务】
ajax调用webService:CS代码
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService {
public WebService () {
//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}
[WebMethod]
public string HelloWorld() {
return "Hello World";
}
}
js代码:
<script src="Js/jquery-1.2.6.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
$(function() {
Bind();
});
function Bind() {
$.ajax({
type: "POST",
contentType: "application/json",
url: "WebService.asmx/HelloWorld",
data: "{}",
dataType: 'json',
success: function(result) {
alert(result.d)
},
error: function() {
alert("error")
}
});
}
</script>