跨域加载资源的蛋疼

 as3开发中加载跨域资源没经验的话是个让人很捉急的事情,加班了三天总结了以下几点:

第一:在本地加载跨域文件和在服务器上加载跨域文件情况不一样,具体差别在于一句话,但是这句话费了一晚上才找出来。如下:
            var lc:LoaderContext = new LoaderContext(true);      就是这句话,及其重要。
           var loader:Loader = new Loader(); 
           var request:URLRequest = new URLRequest(url); 
           loader.load(request, lc);    
因为flash开发是开发好swf然后给后台人员嵌入网页的,在本地的时候没第一句话也无所谓,能加载跨域资源,但是嵌入网页放入服务器之后就不行了,而且不会提示什么错误,这样flash开发人员不知道的话以为是后台的错误,后台人员则以为是flash开发没做好,很容易起纠纷,而且非常蛋疼的事情是,用火狐浏览器调试看,里面是请求了资源,而且拿到了图片,你在swf中打印调试信息会发现progress也加载到一百,就是卡在把资源展现出来的地方。

第二:同样是跨域加载资源,在 同一个项目里面的,加载资源,代码和第一次加载资源一模一样,但是无论是打印调试信息还是在火狐上调试 和第一种一模一样,经过了试验了N中加载图片的方式还是不行之后就把重点放在权限上了,为什么第一次的跨域资源修改之后就能拿到呢,原因是加载到那个资源根目录下的crossdomain文件,第二次呢,在火狐上调试一看也能加载到crossdmain文件,这就奇怪了,代码一样,权限文件能取到,为什么还不能呢?y一晚上就过去了,第二天早上一切从0开始调试,突然发现跨域加载的权限文件时后台人员做了一次跳转,跳转到别的目录去取那个crossdomain文件,之前只看权限文件的内容没看地址,这时候看到了火狐浏览器的提示该文件是301状态,发现了属于跳转获取的,灵光一闪赶紧查资料,说是flash10之后 ,权限文件必须得放在资源的根目录之下,这种跳转获取不行。总算雨过天晴啊。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现PDFJS跨域加载PDF,你需要进行一些配置和调整。以下是一些步骤: 1. 在服务器上启用CORS(跨源资源共享):您需要在服务端配置CORS,以允许从不同域加载PDF文件。具体的CORS配置方法取决于您使用的服务器技术。例如,对于Apache服务器,您可以在.htaccess文件中添加以下内容: ``` Header set Access-Control-Allow-Origin "*" ``` 这将允许来自任何域的请求加载PDF文件。请注意,使用通配符* 可能会存在安全风险,因此您可以根据需要选择更具体的域。 2. 调整PDFJS的配置:PDFJS提供了一些配置选项,可以通过修改它们来实现跨域加载。您可以在加载PDF之前设置以下配置: ```javascript pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://example.com/pdf.worker.js'; ``` 将上述代码中的URL替换为您的PDFJS Worker脚本的URL。这将确保Worker脚本可以正常加载。 3. 加载跨域的PDF文件:在您的前端代码中,使用PDFJS加载PDF文件时,确保指定完整的URL路径。例如: ```javascript const url = 'https://example.com/path/to/pdf.pdf'; const loadingTask = pdfjsLib.getDocument(url); ``` 通过提供完整的URL路径,PDFJS将能够正确地加载跨域的PDF文件。 请注意,如果PDF文件本身没有正确配置CORS,您可能仍然会遇到加载问题。在这种情况下,您需要确保PDF文件的服务器端也正确配置了CORS。 希望这些步骤对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值