本文目录一览:
怎样解决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位无符号整形数组中的二进制数据了
}
};