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

本文目錄一覽:

如何處理前端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是持久存在一個窗口載入過的所有頁面

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/151735.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-11 13:44
下一篇 2024-11-11 13:44

相關推薦

發表回復

登錄後才能評論