您的位置:首页 > 其它

只能从脚本中调用在类定义上有[ScriptService]属性的 Web 服务问题的解决方法

2011-06-16 10:01 706 查看
在做项目的时候碰到了这个问题, 以前做练习的时候没出现过这种问题,于是就郁闷了,到网上一查,还真找到了原因,原来只要注释掉下面一句话就行了

//若要允许使用 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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: