扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
好久没写东西了,自我检讨一下,写不完这篇不下班!!
成都创新互联自成立以来,一直致力于为企业提供从网站策划、网站设计、网站建设、成都网站设计、电子商务、网站推广、网站优化到为企业提供个性化软件开发等基于互联网的全面整合营销服务。公司拥有丰富的网站建设和互联网应用系统开发管理经验、成熟的应用系统解决方案、优秀的网站开发工程师团队及专业的网站设计师团队。最近在做一个项目模块通用的分享功能插件,由于各个模块调用所以会出现跨域问题,正好之前同事解决过,于是自己亲身实践把这次解决问题的经历记录下来。闲言少叙,书归正传~
首先,项目背景,一个基于jquery的分享插件开发,自己也是尝试着写这么个东西,第一次写,质量肯定差,下次博文把这次开发经历写出来。由于这次解决ajax跨域的方法很简单,我就粘贴代码简单说明一下。
第一步:编写后台程序,MVC下代码如下:
//这是一个获取某个用户的通讯录分组方法 public ContentResult GetContactGroup(int? UserID) { var list = addressBook.GetContactGroup(UserID); return CallbackApi(list); } //将list转换为Json格式 private ContentResult CallbackApi(object data, bool isJson = false) { string callback = Request.QueryString["callback"]; return Content(string.Format("{0}({1})", callback, isJson ? data : serializer.Serialize(data), "text/plain", System.Text.Encoding.UTF8)); }
好,上述代码很简单,下面看一下前端代码:
$.getJSON("http://xxxxx/shareresource/GetContactGroup?UserID=" + this.userid + "&callback=?", function (data) { //自己的业务处理});
代码很简单,就是用Jquery的 getJSON方法,传参数把callback传过去,程序运行结果如下:
那么,这样 function(data)就相当于执行这个方法了。然后做data处理就OK了,是不是很简单啊。
总结:1.前提是两个域名的项目都是自己的,这样可以做callback参数传参和接收。
附录:插件效果
插件域名:xyyresource.app.XXX.cn(涉及公司项目保密,暂不透漏)
调用地址 http://localhost:4081/#
实现了跨域名调用,那么效果如下:
红框内的数据均是从另一个域名通过跨域读取读来的,那么这样的话,只要把插件js引用上,任何域名都可以使用这个插件,这样就实现了插件共享效果了。并且可维护性增强。下一期,我将把分享插件开发过程记录下来。就写到这吧,虽然没人看,但还是对自己的总结。继续加油!!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流