异步上传文件-跨域问题如何解决

最近在弄一个上传功能,上级要求使用异步;找了一下工具,好几种,html5uploader、plupload、webupload等,这边选用了第一张,因为找到了一个带进度条的例子,直接拿来用,测试了几次搞懂怎么配置后把功能完成了;谁知上级说要把文件传到其他服务器,这个不能跨域,换一个工具;推荐我用plupload,但看了并没有区别,这跨域是浏览器的问题啊,感觉应该跟工具关系不大,这边就查了很多解决跨域问题的办法,试了都不行,frameset又觉得太麻烦了;后来找到了一篇介绍跨域原因的文章:点击打开链接,看完之后试了一下服务端代码里加上运行跨域的代码;

header("Access-Control-Allow-Origin: 请求的地址");
//判断请求,options是浏览器的跨域运行判断请求,只发送header
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
    header("Access-Control-Allow-Methods: POST,GET,PUT");
    header("Access-Control-Allow-Headers: ".$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']);
    exit; //结束,只需要返回头部即可
}

如上设置,但浏览器判断出是跨越会发一个OPTIONS的请求,服务端判断了之后返回允许的信息,这样浏览器就会把完整的请求信息发送到服务端,这样就可以完成请求了;设置了之后,再试一下跨域请求发现确实好了,而且会有两个请求,会多了一个OPTIONS请求可以查看到






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值