记录一下,ajax请求如下:
let xhr = new XMLHttpRequest();
xhr.open("get","https://music.kele8.cn/search");
xhr.send();
xhr.onreadystatechange = function () {
// 判断当Ajax状态码为4时
if (xhr.status==200) {
// 获取服务器端的响应数据
let ans = JSON.parse(xhr.responseText);
console.log(ans);
}
else {
console.log("请求失败");
}
}
如果你确保后台返回的数据是正确的,get请求可以在浏览器地址栏打开,能够看到json格式的数据,但是控制台就是报错,数据也获取到了,那可能是你缺少一个判断
看下面代码:
let xhr = new XMLHttpRequest();
xhr.open("get", "https://music.kele8.cn/search?keywords="+str);
xhr.send();
xhr.onreadystatechange = function () {
if(xhr.readyState == 4) {
if(xhr.status == 200) {
let arr = xhr.responseText;
let ctype = xhr.getAllResponseHeaders("content-type");
if(ctype.indexOf("json") > -1) {
let res = JSON.parse(arr);
console.log(res);
}
else {
console.log(arr);
}
}
else {
reject('请求失败');
}
}
}
好像在onreadystatechange 事件里面需要判断xhr.readyState这个属性,不判断,就会出现json的报错