JQuery & ASP.NET Webservice
2008-03-07 12:01 废墟中的垃圾 阅读(2655) 评论(2) 收藏 举报JQuery 这个框架真不错,让ajax变得那么灵活。但是这里好像是因为原创者是PHP大师,所以相对于.net的demo少的可怜。
一直再问问题,今天就说一下JQuery怎么样联系ASP.NET的Webservice
首先建立Webservice (园子里面很多教程,可以搜索一下。而且只要你在vs里面选择添加Webservice马上就会出来一个HelloWorld的Demo。)
在前台需要AJAX的地方引入JQuery框架文件 下载地址我在上一篇文章里面已经列出来了。
JQuery的Ajax主要方法有
jQuery.ajax(options)
load(url,data,callback)
jQuery.get(url,data,callback)
jQuery.getJSON(url,data,callback)
jQuery.getScript(url,callback)
jQuery.post(url,data,callback)
在这里面我要说的是,一般初学者都会拿最简单的例子来写。比如这里的jQuery.get(url,data,callback)
Demo1:$.get("webservice路径/webservice名/方法名","{参数1:value1,参数2:value2...}",function(msg){alert(msg)})
无论怎么样都不能弹出,而且没有js报错。这里我最初的想法是考虑JQuery的问题,但是后来一一排出,因为如果把第一个参数换成"test.asp"这样的页面就可以获得结果。但是还是有问题,弹出不是我想要的值,但是最少已经能够弹出了。
然后我突然想起来了,webservice要post提交,所以这里只能用$.post方法。
Demo2:$.post("webservice路径/webservice名/方法名","{参数1:value1,参数2:value2...}",function(msg){alert(msg)})
这时候有弹出提示,但是提示信息为[object],然后继续找问题,查了一下JQuery的Docs才发现,需要设置contentType才可以按照字符串显示,否则将会按照HTTP返回的MIME类型解析。而webservice返回的是一个xml对象,所以这里不能正常显示。
所以这里要弹出返回的字符串,就必须设置contentType。而这里能设置的就需要用最麻烦也最万能的$.ajax
最后的Demo3:
$.ajax({
contentType:"html",
data:{inputString,"John"},
url:"webservice路径/webservice名/方法名",
function(msg){
alert(msg);
}
})
ps:上面的红色部分以前的笔误 写成 $ajax 要修改成 $.ajax
这样就可以正常的显示内部信息了。
因为第二天看JQuery,所以如果有不周到或者错的地方希望大家指正。也希望我的东西能帮助一部分人。
浙公网安备 33010602011771号