请问使用get时为啥没有报错呢
<!DOCTYPE html>
<html>
<head>
<title>ajax</title>
</head>
<body>
<script type="text/javascript">
//封装通用的xhr对象,兼容各个版本
function createXHR(){
//判断浏览器是否将XMLHttpRequest作为本地对象实现,针对IE7,firefox,opera等
if(typeof XMLHttpRequest!="undefined"){
return new XMLHttpRequest();
//接下来判断老版本浏览器(判断的是AXO)
}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,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.');
}
}
//XMLHttpRequest对象
var xhr=createXHR();
//响应XMLHttpRequest对象…状态…变化的函数,onreadystatechange在readyState属性发生改变时触发
xhr.onreadystatechange=function(){
//异步调用成功执行(包括检测是否调用成功)
if(xhr.readyState===4){
if((xhr.status>=200&&xhr.status<300)||xhr.status===304){
console.log(xhr.responseText);
}
}
}
//创建请求
xhr.open("get","./server/slider.json",true);
xhr.send(null);
// xhr.open("post","./server/slider.json",true);
// xhr.send({user:"zhangsan",id:6});
// xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
console.log(xhr);
</script>
</body>
</html>
//使用get时没有404报错呀?
相关截图:
正在回答
同学你好,能够自己发现问题并解决问题,很棒。但是这里有一点需要说明,老师使用同学的代码测试(post请求方式),测试结果如下图所示:
返回状态码为405,这个是因为使用post请求并且发送的URL是一个具体的资源时,例如JSON文件, 网站解析的时候会把整个URL当作域名解析,也就是说并没有传参数给服务端,而是直接访问服务端的具体资源,所以访问静态资源要用get请求。
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星