jQuery插件uploadly报security Error:error #2049解决方案

最近项目项目优化,使用的是jQuery插件uploadly实现图片上传,由于Uploadify内部是通过flash来实现文件上传的,所以当跨域上传文件时就会报security error,就这需要配置跨域策略文件crossdomain.xml文件。基于flash安全沙箱策略来讲,同一个域属于同一个沙箱,只有在同一个沙箱中才能互相访问,如果要访问另一个沙箱,就需要对发起请求的沙箱定义为信任,而这种信任策略就需要配置在crossdomain.xml文件中。

所以优先查看了webroot目录下crossdomain.xml文件

<?xml version="1.0"?>

<cross-domain-policy>

<allow-access-from domain="*.xxx.com" />

</cross-domain-policy>

发现没有问题。

后来经过多方调试,和系统查找,解决成功。

原因是由于,图片上传服务属于单独的系统,本人修改了图片上传的代码,导致tomcat部署图片服务应用时失败。tomcat的监听服务并没有启动,从而导致uploadly上传图片时远程URL访问失败,浏览器报错:

security Error:error #2049。

因而如果报这种错误,如果是远程分应用调用crossdomain.xml没问题要检查上传服务是否正常。

以下如果crossdomain.xml有问题的配置:

<?xml version="1.0" encoding="UTF-8"?><br />
<!DOCTYPE cross-domain-policy SYSTEM<br />
"http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd" ><br />
<cross-domain-policy><br />
<site-control permitted-cross-domain-policies="all" /><br />
<allow-access-from domain="*" /><br />
<allow-http-request-headers-from domain="*" headers="*"/><br />
</cross-domain-policy><br />

此配置表示接收所有请求。存在安全问题一般项目不会使用。

<?xml version="1.0" encoding="UTF-8"?><br />
<!DOCTYPE cross-domain-policy SYSTEM<br />
"http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd" ><br />
<cross-domain-policy><br />
<allow-access-from domain="*.baidu.com" /><br />
</cross-domain-policy><br />

通过以上配置就可实现较安全的Uploadify跨域访问。

posted @ 2015-04-16 17:44  浪荡小新  阅读(2604)  评论(2)    收藏  举报