使⽤Ajax中get请求发送Token时踩的那些坑在使⽤惯了各种⽜X的插件以后,在使⽤原⽣组件写⼀些⼩东西的时候总是有踩不完的坑!今天就来说⼀说我使⽤原⽣ajax请求时踩得坑:
下⾯是我的代码:
var xmlhttp;
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
发送ajax请求的步骤
xmlhttp.setRequestHeader('Authorization', Token);
xmlhttp.open("GET", url, true);
xmlhttp.send();
if (adyState == 4 && xmlhttp.status == 200) {
  console.sponseText)
}
这时候控制台直接给我报了以下错误:
Uncaught DOMException: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.
当时我第⼀时间是以为我写错了代码,再三审查后,确定⾃⼰写了,并且并没有书写错误我就明⽩:踩坑了!!
我就去万能娘搜索了⼀下错误,原来是因为写错了顺序!没错,顺序问题!我滴个亲娘嘞!千想万想没想到是这样!正确代码应该是这样的:
var xmlhttp;
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", url, true);
xmlhttp.setRequestHeader('Authorization', Token);
xmlhttp.send();
if (adyState == 4 && xmlhttp.status == 200) {
  console.sponseText)
}
就这样解决了!
当时以为⾃⼰写错了格式,或者是⼲脆代码编写错误,谁想到原来是代码顺序带来的错误。
为了加深记忆,就发表了我的第⼀篇随笔,以后请⼤家多多关照我这个前端新⼈~
最后说⼀句:程序猿太难了