本文目錄一覽:
怎樣解決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是持久存在一個窗口載入過的所有頁面
js跨域如何處理啊???怎麼IE老是有問題
1、js向服務器發送請求,然後讓服務器去另一個域上獲取數據後返回。(用於你無法控制另一個域)
比如php中利用cUrl。
2、放置跨域文件.
3、用JSONP。
雖然不能跨域進行通信,但是可以引入跨域的js文件。
先定義一個函數
var returnData;
function getData(obj) {
returnData = JSON.parse(obj);
}
當我們要向請求數據的時候,我們可以引入某個包含返回信息的js文件。
比如: script type=”text/javascript” src=”” /
js的內容是getData({json:’格式’});返回時輸出 格式是 text/javascript (比如php用header(‘Content-type:text/javascript’);來輸出)
那麼文件加載好後解析js時就會執行這個函數,返回得到的數據就被賦值給了returnData變量
以這樣的方式插入到頁面中:
var script = document.createElement(‘script’);
script.src=”; //傳入參數id=12321
body.appendChild(script);
js 怎麼實現image的二進制流
// IE11以下不支持,且圖像文件必須屬於當前域(即不能產生跨域)
var xhr = new XMLHttpRequest;
xhr.open(‘GET’, ‘圖片的URL地址’);
xhr.responseType = ‘blob’;
xhr.send();
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
// xhr.response是一個Blob二進制對象
console.log(xhr.response);
// 可以通過類型化數組來遍歷其中的字節
var binary = new Uint8Array(xhr.response);
// TODO binary就是放到8位無符號整形數組中的二進制數據了
}
};
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/300373.html