这里为啥报错了

这里为啥报错了

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta http-equiv="X-UA-Compatible" content="ie=edge">

<title></title>

<link rel="stylesheet" href="css/style.css">

</head>

<body>

<div class="banner" id="banner"></div>

<div class="banner" id="banner_jq"></div>

<script src="js/jQ.js" type="text/javascript" charset="utf-8"></script>

<script type="text/javascript">

//封装通用的xhr对象,兼容各个版本

function createXHR() {

// 判断浏览器是否将XMLHttpRequest作为本地对象实现

// 针对firefox/等等

if (typeof XMLHttpRequest != "undefined") {

//如果存在则返回这个对象

return new XMLHttpRequest()

} else if (typeof ActiveXObject != "undefined") {

//将所有可能出现的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 {

// 创建对象

xhr = new ActiveXObject(xhrArr[i])

// 尝试从符合的版本号中创建xmlrequest对象

break;

} catch (ex) {


}

}

return xhr

} else {

//如果都不支持

throw new Error("草泥马的傻逼东西")

}

}

// XMLHttpRequest对象

var xhr = createXHR(),

data = null

//  响应XMLHttpRequest对象状态变化的函数,在readystatechange变化时执行

xhr.onreadystatechange = function() {

//当异步调用成功时,可以在客户端调用

if (xhr.readyState === 4) {

if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304) {

//当调用成功时可以获取服务器返回的数据

data = JSON.parse(xhr.responseText)

//第四步渲染数据到页面上

renderDateToDom()

}

}

}

// 创建请求

xhr.open("GET", "server/test.json", true)

//发送请求

xhr.send()

//渲染数据

function renderDateToDom() {

var img = data.slider,

//获取了所有的图片和链接地址

i, len = img.length,

//获取其长度,并遍历

banner = document.getElementById("banner"),

str = ""

for (i = 0; i < len; i++) {

console.log(img[i])

// 创建a的dom节点

// var a=document.createElement("a")

// a.href=img[i].linkUrl

// a.innerHTML="<img src='"+img[i].picUrl+"'>"

// banner.appendChild(a)

str += '<a href="' + img[i].linkUrl + '">' + '<img src="' + img[i].picUrl + '">' + '</a>'

}

banner.innerHTML = str

}

//jq的$.ajax()

$.ajax({

url:"server/test.json",// 请求地址

type:"post",             // 请求方式

async:true,              // 同步异步

dataType:"json",         // 数据格式

success:function(imgdata){      // 请求成功的数据 

console.log(imgdata);

}

})

</script>

</body>

</html>


正在回答

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

2回答

同学你好,因为本地直接打开是无法加载json文件的,所以需要借助服务器打开页面,在浏览器中以localhost访问就可以正常加载json文件了。

同学启动服务器之后,不会出现报错,那就说明代码是没有问题,以后遇到需要加载json文件的,都从服务器打开页面就可以了

祝学习愉快~

好帮手慕慕子 2020-06-06 18:36:06

同学你好, 可以将报错信息和项目目录截图以及json文件的内容粘贴过来,便于帮助同学准确的定位与解决问题。

祝学习愉快~

  • 我好像找到问题了不知道是不是,我在本地打开会报错然后启动了服务器之后通过localhost就没问题了,就很离谱
    2020-06-06 18:50:56
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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