老师,有问题

来源:2-9 json(2)

Darkholme

2020-06-30 17:39:31

xhr.open("get","../server/slider.json",true);这串代码"../server/这一块我打两个点就没问题,打1个点报错404,打三个点报错403,是啥情况啊。就是这里../server,我的index.html是放在ajax文件夹内的,ajax文件夹放在www文件夹内。server文件夹也在www文件夹内,slider.json在server文件夹内。所有的内容都和视频里的一样。


<!DOCTYPE html>

<html>

<head>

<title></title>

</head>

<body>

<script type="text/javascript">

function createXHR(){

if(typeof XMLHttpRequest != 'undefined'){

return new XMLHttpRequest();

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

var xhrArr = ['Microsoft.XMLHTTP','MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP.2.0'];

var len = xhrArr.length, xhr;

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

try{

xhr = new ActiveXObject(xhrArr[i]);

break;

}catch(ex){}

}

return xhr;

}else{

throw new Error('No XHR object available');

}

}


var xhr = createXHR(), data=null;

//Respond function in situation of XMLHttpRequest Object

xhr.onreadystatechange = function(){

if(xhr.readyState === 4){

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

data = eval("("+xhr.responseText+")");

console.log(data.slider);

}

}

}

// Create Request

xhr.open("get","../server/slider.json",true);

// Send Request

xhr.send(null);

</script>

</body>

</html>


写回答

1回答

好帮手慕久久

2020-06-30

同学你好,按照你的描述,项目目录结构如下:

http://img.mukewang.com/climg/5efb0fed090c8fd405540100.jpg

由于请求是在html中发送的,所以请求的地址是相对于index.html的,三种路径差别如下:

“../server/slider.json”代表请求的文件是自己(即index.html)上一级目录的server文件中的slider.json文件,该路径刚好对应同学的文件结构,因此能请求成功。

“./server/slider.json”代表请求的是当前路径下的server文件夹中的slider.json文件,这个路径不对应同学的项目结构,无法找到slider.json,所以报404(资源未找到)。

而“…/server/ slider.json”这种写法是错的,所以报了403。

如果我的回答帮到了你,欢迎采纳,祝学习愉快!


1

0 学习 · 14456 问题

查看课程