本文主要是介绍HTML5之Ajax跨域的问题和处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
请求的文件与当前的文件不在同一域下,ajax跨域请求
(1) 标准浏览器下:
后端对访问源进行控制:
设置一下:设置访问该资源的域
<script>
window.onload =function() {
/*
在标准浏览器下,XMLHttpRequest对象已经是升级版本,支持了更多的特性,可以跨域了
但是,如果想实现跨域请求,还需要后端的相关配合才可以
*/
var oBtn =document.getElementById('btn');
oBtn.onclick = function() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange= function() {
if (xhr.readyState == 4) {
if (xhr.status ==200) {
alert(xhr.responseText);
}
}
}
xhr.open('get','http://www.b.com/ajax.php', true);
xhr.send();
}
}
</script>
</head>
<body>
<input type="button"value="获取跨域下内容" id="btn" />
</body>
</html>
B中后端中ajax.php
<?php
header('Access-Control-Allow-Origin:http://www.a.com'); //这是允许访问该资源的域
echo 'hello';
(2) IE下实现跨域请求
同域下,XMLHttpRequest
跨域下:oXDomainRequest
只有事件不同 onload
<script>
window.onload = function() {
/*
XMLHttpRequest: 增加很多功能,他也不推荐使用onreadystatechange这个事件来监听,推荐使用onload
XDomainRequest: IE如果想实现跨域请求,则需要使用另外一个对象去实现
*/
varoBtn = document.get
这篇关于HTML5之Ajax跨域的问题和处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!