检查对json请求的响应内容?
我试图根据FreeCodeCamp挑战构建一个随机引用生成器,但我想先写一个测试来确认我实际上获取了我请求的json对象。我有一个设置为“报价” ID的简单h1元素和下面的代码(jQuery是在CodePen装起来)检查对json请求的响应内容?
function genQuote() {
var output = $.getJSON("http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1&callback=", function(data){
var theQuote = data.content;
var Author = data.title;
document.getElementById('quote').innerHTML = theQuote;
});
}
问题,访问时的URL,显示了明明看起来像一个JSON对象,对我来说,但我的功能根本不会改变#quote项目。
从URL中删除&callback=
,以请求JSON
,而不是将$.getJSON()
调用转换为jsonp
请求。此外,返回一个数组,而不是一个普通的对象;访问使用对象括号标记
function genQuote() {
var output = $.getJSON("https://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1", function(data){
var theQuote = data[0].content;
var Author = data[0].title;
document.getElementById('quote').innerHTML = theQuote;
})
}
$(genQuote);
的jsfiddle https://jsfiddle.net/gpyx6jLy/
至于你的问题评论说,这是一个跨源请求共享(CORS)的问题。该API返回“http://null”作为Access-Control-Allow-Origin标头,该标头不允许访问。
看起来像这是他们的API服务器中的错误,您可能无法使用它。
问题是'javascript'在Question处发出'jsonp'请求,而不是'JSON'的请求。 stacksnippets具有“null”原点,而不是作为参数传递给'$ .getJSON()'的URL。请求来源和URL的协议也应该匹配。 – guest271314
查找CORS - 检查您的浏览器开发人员工具控制台 –