Ajax无刷新上传文件跨域问题解决办法

3 篇文章 0 订阅
1 篇文章 0 订阅

我的需求是这样的: A和B是两个不同域的服务器,A要调用B的接口将文件上传到B端,B端返回一串JSON,A端要拿到返回值进行处理。

首先,说说Ajax无刷新实现文件上传,网上有很多插件,比较好用的有uploadify(flash)jquery.upload(iframe)等。jquery.upload借助iframe,在iframe里创建表单submit,上传完成后移除iframe,这样只在框架里刷新,表面看起来主页面并没有刷新,这样就完成了无刷新文件上传。

再说跨域,不管是用flash还是用iframe的方式上传都牵扯到一个跨域的安全问题导致上传失败,服务器返回的callback信息无法供主页面使用。网上有人说用domain.name,这种方法我折腾了半天也没调通。有人用flash上传的需要服务器加一个crossdomain.xml文件,还有的非flash方式上传的需要服务器加header(“Access-Contro-Allow-Origin:*”)。后面这两种方法都不安全,而且如果无法获得服务器权限也行不通。

经过多方实验,最终放弃了在终端上传的尝试。
终极解决方案是:用ajax将数据提交到同域,在服务器后端处理上传文件的请求并接收返回数据。这里需要借助PHP的CURL模块。

今天不早了,改天有空再补例子吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值