webuploader在IE8/9下上传遇到的两个问题

摘要:
最近在做图片上传功能。另外,这个控件其自身有两种上传模式在不支持HTML5上传的浏览器中,会使用flash的方式进行上传可是却发现报错了。原来,flash在跨域时唯一的限制策略就是crossdomain.xml文件,该文件限制了flash是否可以跨域读写数据以及允许从什么地方跨域读写数据。所以要使Flash可以跨域传输数据,其关键就是crossdomain.xml。

最近在做图片上传功能。

点击一个按钮,弹出一个iframe,它是百度的webuploader插件

在点击关闭按钮时,IE9下总是会报错:__flash__removeCallback未定义错误

解决办法很简单,就是在关闭前直接清空含有此flash控件的dom元素。

原因在以下两篇博文里:http://blog.csdn.net/lanfeng330/article/details/8492910

http://blog.csdn.net/qq282030166/article/details/45308121

谢谢前辈。

另外,这个控件其自身有两种上传模式

在不支持HTML5上传的浏览器中(IE8/9等),会使用flash的方式进行上传

可是却发现报错了。通过跟踪发现,它有请求crossdomain.xml文件,这是什么鬼?

原来,

flash在跨域时唯一的限制策略就是crossdomain.xml文件,该文件限制了flash是否可以跨域读写数据以及允许从什么地方跨域读写数据。

位于www.a.com域中的SWF文件要访问www.b.com的文件时,SWF首先会检查www.b.com服务器目录下是否有crossdomain.xml文件,如果没有,则访问不成功;若crossdomain.xml文件存在,且里边设置了允许www.a.com域访问,那么通信正常。所以要使Flash可以跨域传输数据,其关键就是crossdomain.xml。

所以在初始化uploader时,定义的swf的路径如果是 abc.test.com/..../upload.swf

那么,这个xml文件就应该放在 abc.test.com的根目录下面,并且一定要确保 abc.test.com/crossdomain.xml可以直接访问到

但这时IE下依然请求不到这个文件,原因如下文所述

http://www.jianfangkk.com/aspnet/201501/206

所以最后解决方案是:

<system.webServer>
     <staticContent>
       <remove fileExtension=".xml" /> 
       <mimeMap fileExtension=".xml"mimeType="text/plain" /> 
     </staticContent>
</system.webServer>

免责声明:文章转载自《webuploader在IE8/9下上传遇到的两个问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android将view保存为图片并放在相册中在WSL中运行32位程序下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

微信公众平台开发(104) 自定义菜单扫一扫、发图片、发地理位置

关键字:微信公众平台 自定义菜单扫一扫 发图片 发地理位置作者:方倍工作室原文:http://www.cnblogs.com/txw1958/p/weixin-menu-new-type.html 自定义菜单能够帮助公众号丰富界面,让用户更好更快地理解公众号的重要功能。微信增加了点击菜单后调起扫一扫(支持二维码/一维码)、发图片、发地理位置的能力,需开发实...

给tomcat配置manager-gui账号

1. 编辑/regulatoryreport/ups/apache-tomcat-8.5.51/conf/Catalina/localhost/manager.xml,添加下面内容: <Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/web...

Android 性能优化:使用 Lint 优化代码、去除多余资源

http://blog.csdn.net/u011240877/article/details/54141714 *本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 读完本文你将了解到: 前言 什么是 Lint Lint 工作方式简单介绍 从命令行运行 Lint Android Studio 中使用 Lint 团队中建立代码规范利器提...

【FLASH教程】Adobe Flash CS4 官方中下载及安装

http://yaorao.16789.net/index.asp?ActionX=ReadArt&NewsID=2021330 Adobe Flash CS4 官方中文版的下载及安装说明          一、下载:[Adobe Flash CS4官方简体中文版]       软件大小:1.26G    软件安装要求:内存 1G     电驴或...

(转)创建WebAPI文档的3个简单步骤

默认情况下,Microsoft.AspNet.WebApi.HelpPage创建的API帮助页不包含任何文档。 我们会看到所有的ApiController动作都列在No documentation available.上 要启用文档,我们只需要遵循三个简单步骤。 步骤1-在控制器级别上 为了测试目的,创建了一个新的ApiController,名为Docum...

MS SQLSERVER SELECT FOR XML 中字符的限制问题

采用sqlcommand返回单行的值这种方式查询的xml长度不能超过8000个字符。 ssql = "select * from " + tablename + " FOR XML AUTO,ELEMENTS";                      SqlCommand command = new SqlCommand(ssql, connect...