我一直在尝试格式化API以获取'application / json'内容,但我仍然将其作为'text / html'(这是它们的默认值)接收。
Heres是我在下面写的API代码:
var request = new XMLHttpRequest();
request.open('GET', 'https://icanhazdadjoke.com/');
request.setRequestHeader('Accept', 'application/json');
request.setRequestHeader('User-Agent', 'my email');
request.onload = function(){
data = JSON.parse(request.responseText);
console.log(data);
}
request.send();
请记住,我是一名初学者,昨天刚刚学习了一些关于API的知识。
答案 0 :(得分:0)
https://icanhazdadjoke.com/
不是API网址,它是一个可以获取html和其他资源的网站页面,您需要调用实际上为您提供JSON作为响应的API。
例如,尝试:https://jsonplaceholder.typicode.com/posts
request.setRequestHeader('Content-type','application / json');
当服务器实际为您提供JSON数据时,应该可以解决问题。
答案 1 :(得分:0)
万一有人找到这个帖子,上面的答案是不准确的。此端点:https://icanhazdadjoke.com/,当使用以下请求标头请求时:
Accept: "application/json"
,
将返回预期的数据格式而不是网页。
即使我在 Chrome 控制台中运行原始海报的代码,我也得到了预期的结果。您在使用它时可能遇到了一些中断或错误。
这些笑话太可怕了。