现在的位置: 首页 > 综合 > 正文

异步跨域上传——easyui-form

2013年04月04日 ⁄ 综合 ⁄ 共 771字 ⁄ 字号 评论关闭

  今天是第一次写,先随便写点,毕竟开始才是最重要的。    

  最近在做一个异步提交数据的功能,数据包含上传文件的功能,在提交保存时需要在A服务器上保存一份,在B服务器(远程服务器)保存一份。上网查了一下,有这么几个思路:

       1)可以用jQuery的jsonp的方式传递(仅限文本数据)

       2)或者用form+iframe+远程url的方式传递数据(可以参考ajaxuploadfile,可以在远端处理提交过来的HttpPostedFile)

       3)用flash或silverlight

      我采用的是jQuery的EasyUI框架,所以表单提交自然也是用了它的form。这个封装的form采用的就是第2种方式的原理。在处理过程中都一切正常,但是如果我把url指向一个远程url,在远端处理完数据后,提示错误“拒绝访问”,原来是因为iframe跨域的局限性。本来想改用form直接post的方式,但是那样就要刷新页面不符合“框架精神”,呵呵。后来思来想去,因为远程数据处理也是由我们开发,所以想到在远端处理完数据后,重定向到本地的一个处理页面,让这个页面来接收远端的返回结果,这样iframe相当于访问的就是本地页面。ok,问题解决了。(传递的远端地址为http://remoteurl/?returnUrl=localserverfile

      总结一下就是(localserver form post -> remote handler -> remote redirect(local server file) -> local server file handle -> localserver form )

      也许这样的方法已经有人用过了,这里只是自己赶快记录一下,方便以后使用(以前的经验流失了太多,现在是时候总结积累了)。

抱歉!评论已关闭.