首页 > 编程知识 正文

js跨域i下载文件,前端下载文件跨域

时间:2023-12-29 20:32:04 阅读:331188 作者:XHGW

本文目录一览:

如何处理前端js跨域问题

前端跨域的解决方法非常的多,简单的给你介绍一下吧。

iframe解决跨域,这种方法也比较常见

JSONP解决跨域,简单,易上手

postMessage解决跨域,使用了比较新H5 API,所以存在一定的兼容问题;

服务器代由访问,方法对前端影响不大,但是后台相对会麻烦很多。

希望对您有帮助吧~~

怎样用JS实现文件下载功能,求函数,代码

其实很简单, 在这个方法里面, 只要使用页面跳转, 将url指向文件地址, IE就会实现下载了

例如下载Upload 文件夹下的XX.doc,注意路径要对

function download()

{

location.href="../Upload/XX.doc";

}

javascript 跨域调用js文件问题.....

三种方法实现js跨域访问

1.基于iframe实现跨域

   基于iframe实现的跨域要求两个域具有aa.xx.com,bb.xx.com这种特点,也就是两个页面必须属于一个基础域(例如都是xxx.com,或是xxx.com.cn),使用同一协议(例如都是 http)和同一端口(例如都是80),这样在两个页面中同时添加document.domain,就可以实现父页面调用子页面的函数,代码如下:

页面一代码:

html

head

  script

   document.domain = "xx.com";

    function aa(){

      alert("p");

   }

  /script

/head

body

   iframe src="" id="i"

   

   /iframe

   script

  document.getelementbyid('i').oncg = function(){

 var d = document.getelementbyid('i').contentwindow;

 d.a();

 

 };

   /script

 /body

/html

页面二代码:

html

 head

  script

    document.domain = "xx.com";

    function a(){

    alert("c");

     }

  /script

 /head

 body

 /body

/html

这时候父页面就可以调用子页面的a函数,实现js跨域访问

2.基于script标签实现跨域

   script标签本身就可以访问其它域的资源,不受浏览器同源策略的限制,可以通过在页面动态创建script标签,代码如下

  var script = document.createElement('script');

  script.src = "*.js";

  document.body.appendChild(script);

这样通过动态创建script标签就可以加载其它域的js文件,然后通过本页面就可以调用加载后js文件的函数,这样做的缺陷就是不能加载其它域的文档,只能是js文件,jsonp便是通过这种方式实现的,jsonp通过向其它域传入一个callback参数,通过其他域的后台将callback参数值和json串包装成javascript函数返回,因为是通过script标签发出的请求,浏览器会将返回来的字符串按照javascript进行解析执行,实现了域与域之间的数据传输。

jquery中对jsonp的支持也是基于此方案

3.后台代理方式

   这种方式可以解决所有跨域问题,也就是将后台作为代理,每次对其它域的请求转交给本域的后台,本域的后台通过模拟http请求去访问其它域,再将返回的结果返回给前台,这样做的好处是,无论访问的是文档,还是js文件都可以实现跨域

js下载文件

代码如下:

html

head

meta http-equiv="Content-Type" content="text/html; charset=gbk" /

titleJS实现下载文件/title

script language=JavaScript

function download(obj){

if(document.all.ifrm==null){

objIframe=document.createElement("IFRAME");

document.body.insertBefore(objIframe);

objIframe.outerHTML="iframe name=ifrm style='width:0;hieght:0' src="+obj.href+"/iframe";

re=setTimeout("download()",1)

}

else{

clearTimeout(re)

files=window.open(obj.href,"ifrm")

files.document.execCommand("SaveAs")

document.all.ifrm.removeNode(true)

}}

/script

/head

body

文档列表:请点出下载br/

a href="file01.doc" id="filelist" onclick="download();return false;" style="cursor:hand"文件1/a br/

a href="file02.pdf" id="filelist" onclick="download();return false;" style="cursor:hand"文件2/a

/body

/html

如何用js实现点击按钮下载文件

在按钮上写属性 onclick="函数名()" ,作用是绑定click事件

input type="button" onclick="Click()" value="Download" /

然后在脚本处写上对应的函数即可,在函数中跳转到相应的文件路径就行。如

function Click(){

    window.location.href="文件的url地址";

}

怎样解决js读取xml文件跨域问题

js读取xml文件跨域 问题,可以使用以下几种方法:

1 通过jsonp跨域 : 在js中,我们直接用XMLHttpRequest请求不同域上的数据时,是不可以的。但是,在页面上引入不同域上的js脚本文件却是可以的,jsonp正是利用这个特性来实现的。代码如下:

2  通过修改document.domain来跨子域:有一个页面,它的地址是  , 在这个页面里面有一个iframe,它的src是, 很显然,这个页面与它里面的iframe框架是不同域的 ;document.domain就可以派上用场了,我们只要把 和 这两个页面的document.domain都设成相同的域名就可以了

3 使用window.name来进行跨域 : 每个页面对window.name都有读写的权限,window.name是持久存在一个窗口载入过的所有页面

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。