老师.报错~~~

老师.报错~~~

Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ajax</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<div class="banner" id="banner"></div>
<script type="text/javascript">
//封装通用的xhr对象,兼容各个版本
function createXHR(){
//判断浏览器是否将XMLHttpRequest作为本地对象实现,针对IE7,firefox,opera等
if(typeof XMLHttpRequest!='underfined'){
return new XMLHttpRequest();
}else if(typeof ActiveXObject!='underfined'){
//将所有可能出现的ActiveXObject版本放在一个数组中
var xhrArr=['Microsoft.XMLHTTP','MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP.2.0'];
//遍历创建XMLHttpRequest对象
var len=xhrArr.length;
for(var i=0;i<len;i++){
try{
//创建XMLHttpRequest对象
xhr=new ActiveXObject(xhrArr[i]);
break;
}
catch(ex){

}
}
return xhr;
}else{
throw new Error('No XHR object availabel.')
}
}
//XMLHttpRequest对象
var xhr=createXHR(),data=null;
//响应XMLHttpRequest对象状态变化的函数,onreadystatechange在readystatechange属性发生改变时触发
xhr.onreadystatechange=function(){
//异步调用成功,响应内容解析完成,可以在客户端调用
if(xhr.readyState===4){
if((xhr.status>=200 && xhr.status<300)||xhr.status===304){
//获得服务器返回的数据
data=JSON.parse(xhr.responseText);
//渲染数据到页面中
renderDataToDom();
}
}
}
// console.log(xhr);
//创建请求
xhr.open("get","./server/slider.json",true);
//发送请求
// xhr.send({user:"zhangsan",id:6});
xhr.send(null);
//设置http头部信息
// xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
//渲染数据
function renderDataToDom(){
var img=data.slider,i,
len=img.length,str="",
banner=document.getElementById("banner");
for(i=0;i<len;i++){
// console.log(img[i]);
// var a=document.createElement("a");
// a.innerHTML='<img src=';
// banner.appendChild(a);
str+='<a href="'+img[i].linkUrl+'"><img src="'+img[i].picUrl+'"></a>';


}
banner.innerHTML=str;
}
</script>
</body>
</html>
*{
	margin:0;
	padding:0;
}

.banner{
	width: 600px;
	height: 338px;
	overflow: hidden;
	position: relative;
	margin:50px auto;
}
.banner a{
	display:block;
	float:left;
	width:600px;
	height:338px;
}

.banner a img{
	display: block;
	width: 600px;
	height:338px;
}


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

根据报错信息,同学是在本地访问的,本地访问是不能进行跨域的,需要部署到静态服务器上,比如使用wampserver软件或者是按照如下操作直接部署到静态服务器上也是可以的:

1、在node.js官网下载node.js并进行安装

2、在电脑桌面上按下windows键+R键,在如下弹出窗口中输入cmd,回车

http://img1.sycdn.imooc.com//climg/5d7f64f1099e38f904370262.jpg

在弹出的命令窗口中,按如下步骤操作:

(1)npm install http-server -g

等待安装完成

(2)安装完成后,找到你这个项目的文件夹,按住shift不松手,右键选择在此处打开命令窗口,即可在项目文件夹中打开命令窗口,然后输入http-server即可运行项目,这个时候即可正常访问

示例:

http://img1.sycdn.imooc.com//climg/5d7f666109b8030305920682.jpg

http://img1.sycdn.imooc.com//climg/5d7f66a409c1493206880448.jpg

希望可以帮到你!

  • 慕言_7946275 提问者 #1
    老师,我是已经安装了wampserver这个的
    2019-09-16 18:47:12
  • 樱桃小胖子 回复 提问者 慕言_7946275 #2
    你需要在浏览器地址栏输入http://localhost/ajax/server/slider.json
    2019-09-16 18:51:34
  • 这样访问才是从wampserver上访问哦,同学的 file:///D:/360Downloads/wamp-server/wamp/www/ajax/server/slider.json实际上还是从本地访问的哦,可以参考如下的使用教辅哦:http://file.mukewang.com/class/assist/800/4558021/il8gnnwajs/windows系统php集成环境WampServer使用教辅.pdf
    2019-09-16 18:54:00
提问者 慕言_7946275 2019-09-16 18:09:03

报错 Failed to load file:///D:/360Downloads/wamp-server/wamp/www/ajax/server/slider.json: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师