如何解析没有回调的闪烁生成的 JSON
How to parse a flicker generated JSON not having a callback?
我正在构建一个闪烁应用程序,我注意到闪烁使用不同类型的jSONP回调
如何解析此 url (http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=178b8c00abf3e44e1def5f60d2002cb1&tags=paris&per_page=10&page=3&format=json) 作为 JSONP 回调的一部分替换现有 url?即使我传递它们,我现有的 url 也没有提供页码。
闪烁生成的新网址发布在下面,但我没有为它添加 json 回调。
http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=178b8c00abf3e44e1def5f60d2002cb1&tags=paris&per_page=10&page=3&format=json
我的工作代码如下
<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script language="javascript">
function myAJAXfun(event) {
var searchTerm = $("#search").val(); // get the user-entered search term
var URL = "http://api.flickr.com/services/feeds/photos_public.gne";
var ID = "25053835@N03";
//var tagmode="&tagmode=any";
//var format ="&format=json";
var perpage = 10;
var page = 1;
var tags = "&tags=" + searchTerm;
var tagmode = "&tagmode=any";
var jsonFormat = "&format=json&jsoncallback=?";
var ajaxURL = URL + "?jsoncallback=?id=" + ID + "&per_page=" + perpage + "&page=" + page + tags + tagmode + jsonFormat;
//var ajaxURL= URL+"?"+tags+tagmode+jsonFormat;
$.getJSON(ajaxURL, function (data) {
//$("h1").text(data.title);
//alert(data.length);
var photoHTML;
$("#photos").empty();
if (data.items.length) {
alert(data.items.length);
$.each(data.items, function (i, photo) {
//var photoHTML = "<h4>" +photo.tags + "</h4>";
photoHTML += '<a href="' + photo.link + '">';
photoHTML += '<img src="' + photo.media.m + '" alt="' + photo.media.m + '" title="' + photo.media.m + '"></a>';
$('#photos').append(photoHTML).fadeIn(200);
});
} else {
alert(data.items.length);
photoHTML = "<h2> No Results</h2>";
$('#photos').append(photoHTML).fadeIn(200);
}
//$('#photos').append(photoHTML).fadeIn(200);
});
}
$(document).ready(function () {
$("#submit").click(function (event) {
myAJAXfun();
});
$("#scrollbox").scroll(function () {
// check if we're at the bottom of the scrollcontainer
//alert($(this)[0].scrollHeight + "- "+$(this).scrollTop() +"== "+$(this).outerHeight())
if ($(this)[0].scrollHeight - $(this).scrollTop() == $(this).outerHeight()) {
// If we're at the bottom, retrieve the next page
page++;
//$("#submit").click();
myAJAXfun();
}
// myAJAXfun();
});
});
</script>
<style type="text/css">
#container {
width:400px;
margin:0px auto;
padding:40px 0;
}
#scrollbox {
width:900px;
height:450px;
overflow:auto;
overflow-x:hidden;
border:1px solid #f2f2f2;
margin-top:150px;
}
#container > p {
background:#eee;
color:#666;
font-family:Arial, sans-serif;
font-size:0.75em;
padding:5px;
margin:0;
text-align:right;
}
#searchBar {
align:center;
position:fixed;
height:150px;
background-color:#777;
border:1px solid red;
width:100%;
top:0;
}
#photos {
}
</style>
</head>
<body>
<div align="center" id="searchBar">
<h2>flicker tag search</h2>
<div>Enter Search Term</div>
<input type="text" id=search />
<input type="button" id=submit value="Search" />
</div>
<div id="container">
<div id="scrollbox">
<div id="photos"></div>
</div>
<p><span id="status"></span>
</p>
</div>
</body>
</html>
您需要使用参数 jsoncallback
设置 jsonpcallback 方法名称
dataType: "jsonp",
jsonp: 'jsoncallback'
见 http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=178b8c00abf3e44e1def5f60d2002cb1&tags=paris&per_page=10&page=3&format=json&jsoncallback=x
尝试
function myAJAXfun(event) {
var ajaxURL = 'http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=178b8c00abf3e44e1def5f60d2002cb1&tags=paris&per_page=10&page=3&format=json'
$.ajax({
url: ajaxURL,
dataType: "jsonp",
jsonp: 'jsoncallback',
success: function (data) {
console.log(data);
}
});
}
演示:小提琴
相关文章:
- jQuery匹配JSON对象的部分文本
- 在循环中分配json值时,值被覆盖
- 需要帮助设置json数组
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 使用JQuery解析JSON嵌套数组
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 如何使用json将对象列表从java转换为javascript
- 如何使用 node.js 比较两个 json 数组
- 如何将JSON数据导入我的ejs模板
- 区分JSON中的矩阵和列表列表
- 不显示带有本地json文件数据的谷歌地图脚本
- 如何将json数据显示为html
- 如何为json对象中的段发送array[]
- 根据id将json数组组合为一个json数组
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- Json数据包含日期和时间格式
- 如何解析没有回调的闪烁生成的 JSON