推广 热搜: 劳务  海南  2024  合同  江苏  云南  劳务系统  2023  劳务派遣管理软件  劳务派遣管理系统 

Ajax跨域与WebService进行数据交互

   2024-06-12 180
核心提示:pAjax直接与WebService进行数据交互,比较简单。/ppJavaScript跨域访问WebServices需要注意的几个事项:/pp1丶在WebService对应
<p>Ajax直接与WebService进行数据交互,比较简单。</p><p>Javascript跨域访问WebServices需要注意的几个事项:</p><p>1丶在WebService对应的web.config中system.web节点下加入</p><p><webServices></p><p><protocols></p><p><addname="HttpS劳务派遣系统软件p"/></p><p><addname="HttpPost"/></p><p><addname="HttpGet"/></p><p><addname="documentation"/></p><p></protocols></p><p></webServices>//因为webservice默认不允许get,post等方式请求服务.</p><p>2丶对跨域请求服务的地址做特殊处理,格式如:http://172.16.92.32/test4/DataServices.asmx/GetStuById?callback=?</p><p>其中callback=?是重点,其中?符号会被JQuery自动替换成其它的回调方法名称,具体过程和原理我们这里不予理会。</p><p>我们关心的是callback=?起什么作用了?原来callback=?被替换后,会把方法名称传给服务器。我们在服务器端要做什么工作呢?</p><p>服务器要接受参数callback,然后把callback的值作为JSON数据方法名称返回。响应成功后,就是我们脚本端对应的回调函数.</p><p></p><p>3丶前台脚本请求时,将dataType设置为json或jsonp.其他类型均不能成功得到响应数据.4丶$.ajax(</p><p>{</p><p>url:'',</p><p>dataType:'jsonorjsonp',</p><p>type:get,</p><p>data:{},</p><p>success:function(json){},</p><p>})的请求效果等同于$.getJSON(url,data,function).//$.getJSON以get方式请求返回json数据结果.,</p><p>5丶WebService端代码参考示例.</p><p>[WebMethod]</p><p>publicvoidGetLoginId(stringloginId)</p><p>{</p><p>stringcallback=HttpContext.Current.Request["callback"];</p><p>List<Student>stuList=newList<Student>()</p><p>{</p><p>newStudent(){Name="张三",Age=18},</p><p>newStudent(){Name="李四",Age=15}</p><p>}</p><p>JavascriptSerializerjss=newJavascriptSerializer();</p><p>stringjsonObjStr=jss.Serialize(stuList);</p><p>//额外追加上的一对括号["()"]不能删除,否则不能正常得到数据,最终返回的结果</p><p>//结构类似于:?(jsonObj),供前台回调处理.</p><p>HttpContext.Current.Response.Write(callback+"("+jsonObjStr+")");</p><p>HttpContext.Current.Response.End();</p><p>}</p>
 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备18079127号  |  粤ICP备18079127号