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

发布时间:2022-11-23

本文目录一览:

  1. 如何处理前端js跨域问题
  2. 怎样用JS实现文件下载功能,求函数,代码
  3. javascript 跨域调用js文件问题.....
  4. js下载文件
  5. 如何用js实现点击按钮下载文件
  6. 怎样解决js读取xml文件跨域问题

如何处理前端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').onload = 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" />
    <title>JS实现下载文件</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;height: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是持久存在一个窗口载入过的所有页面。