如何使应用程序标头正常工作

时间:2018-03-09 23:32:39

标签: javascript xml api request xmlhttprequest

我一直在尝试格式化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的知识。

2 个答案:

答案 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 控制台中运行原始海报的代码,我也得到了预期的结果。您在使用它时可能遇到了一些中断或错误。

enter image description here

这些笑话太可怕了。