我无法从Random quote API
获取值。我不知道这个问题发生在哪里。是在获取内容还是将其返回到前端时。如果我有权访问日志,本来可以搞清楚。而且,我在互联网上免费找到了这个API。我仍然不明白回调参数的作用。
请参考下面的截图
这是我的HTML代码
$(document).ready(function() {
$("#click").on("click", function() {
$.getJSON("http://quotesondesign.com/wp-json/posts?filter[orderBy]=rand&filter[posts_per_page]=1&callback=", function(key) {
$("#quote").append(key[0].content + "<br><p> - " + key[0].title + "</p>");
});
});
});
.position-message {
margin-left: 25%;
margin-right: 25%;
margin-top: 10%;
margin-bottom: 20%;
}
.background {
background-color: maroon;
}
.button-shape {
border-radius: 50%;
width: 50px;
height: 50px;
margin: auto;
}
.fa-size {}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&lang=en" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div class="container-fluid">
<div id="quote" class="well position-message"></div>
<br>
<br>
<div class="row text-center">
<button type="button" id="click" class="button-shape"><i class="fa fa-refresh fa-2x"></i></button>
</div>
</div>
以下是我的网页的快照。我试图在单击按钮时在白色区域<div id="quote" class="well position-well">
中打印随机引用。
答案 0 :(得分:1)
似乎您的服务器存在问题&#34; Access-Control-Allow-Origin&#34;。
抱歉误导,似乎http://null
是由stackoverflow Run code snippet
造成的。
I made a working copy (no code change besides change the `http` to `https`):
https://jsfiddle.net/qex5y16v/1/
答案 1 :(得分:1)
由于您要进行跨源请求,因此需要使用第二个示例。只需将&_jsonp=?
添加到API网址即可。如果您的网页托管在https(例如stacksnippets)上,那么API网址也必须是https。
$(document).ready(function() {
$("#click").on("click", function() {
$.getJSON("https://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1&_jsonp=?", function(data) {
console.log(data);
});
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<button type="button" id="click" class="button-shape">Button</button>
&#13;
我仍然不了解回调参数的作用。
您正在从API(显然)不允许跨源请求请求JSON数据。但他们提供了一个解决方法:如果添加_jsonp=myfunc
,则服务器返回JSONP而不是JSON,这实际上是包装JSON数据的JavaScript代码。 jQuery.ajax
解释了详细信息。