http处理404错误

http处理404错误

问题描述:

该函数应该在一切正常时返回数据,并在收到404错误时返回0。http处理404错误

function httpGet(url) 
    { 
     if (window.XMLHttpRequest) 
     { 
      xmlhttp=new XMLHttpRequest(); 
     } 
     else 
     { 
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     xmlhttp.onreadystatechange=function() 
     { 
      if (xmlhttp.readyState==4 && xmlhttp.status==200) 
      { 
       return xmlhttp.responseText; 
      } 
      if(xmlhttp.readyState==4 && xmlhttp.status==404) 
      { 
       return 0; 
      } 
     } 
     xmlhttp.open("GET", url, false); 
     xmlhttp.send();  
    } 

例如,

username = '_ele'; 
httpGet('https://api.scratch.mit.edu/users/'+username+'/followers'); 

将抛出一个404错误,但我希望函数可以返回值0,而不是,怎么办呢?

你可以试试这个版本

function httpGet(url) 
    { 
     if (window.XMLHttpRequest) 
     { 
      xmlhttp=new XMLHttpRequest(); 
     } 
     else 
     { 
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 

     xmlhttp.open("GET", url, false); 
     xmlhttp.send();  
     if (xmlhttp.status != 200) { 
      // catch error 
      return xmlhttp.status + ': ' + xmlhttp.statusText; // expample error: 404: Not Found 
     } else { 
      // response 
      return xmlhttp.responseText; 
     } 
    } 
+0

https://jsfiddle.net/dfrhh6kw/控制台还抛出404错误,我能做些什么呢? –

+0

U也会在控制台收到错误,但是你的代码在jsfiddle中工作(我收到警报505),之后如果重写'return xmlhttp.status +':'+ xmlhttp.statusText;'''return“ook”'我收到alert与文字'ook' – AkeRyuu