如何通过 AJAX 获取 API 请求响应
How to get the API request response via AJAX
我正在尝试通过我的应用程序中的 Ajax 获取 Flickr 的 API 响应。我正在使用 Laravel。我有一个特定的路由和一个函数来进行 API 调用。
//Route.php
Route::post('/getlocation/{latitude}/{longitude}', ['as'=>'get-location', 'uses'=>'FormController@getLocationImage']);
和函数
//getLocationImage()
//GET THE IMAGES BASED ON THE LOCATION FROM FLICKR.
$api_key = 'my_api_key_is_here';
$tag = 'night,sunset,sunrise,park,people,summer,tree,flowers';
$lat = '&lat='.$latitude;
$lon = '&lon='.$longitude;
$perPage = 12;
$url = 'https://api.flickr.com/services/rest/?method=flickr.photos.search';
$url.= '&api_key='.$api_key;
$url.= '&tags='.$tag;
$url.= $lat;
$url.= $lon;
$url.= '&per_page='.$perPage;
$url.= '&format=json';
$url.= '&nojsoncallback=1';
$response = json_decode(file_get_contents($url));
$photo_array = $response->photos->photo;
return Response::json(["success"=>"true", "photo_array"=>$photo_array]);
现在在 jquery 函数中,我正在调用 Ajax。
$("#nomination-name").focus(function(){
$.post(
'/getlocation/'+$("#newLatitude").val()+"/"+$("#newLongitude").val(), // location of your php script
{ user: "bob", id: 1234 }, // any data you want to send to the script
function( data ){ // a function to deal with the returned information
alert(data);
});
});
但是当我尝试提醒数据时,它只显示 [object Object]
我怎样才能在 Ajax 调用中得到响应?
控制台的输出如下所示。
Object
photo_array: Array[12]
0: Objectfarm: 8
id: "16325992992"
isfamily: 0
isfriend: 0
ispublic: 1
owner: "35736862@N03"
secret: "b7044c5b46"
server: "7548"
title: "#snow #trees #winter #parcangrignon #montreal #livemontreal #themainmtl #mtlblog #vscocam"
__proto__: Object
1: Object
..............
您要实现的目标应该不会太难。我看不到 photo_array 的内容,但只要您知道如何遍历对象就没问题。
for(i=0;i<data.images.length;i++) {
$("#images").append(data.images[i])
}
HTML
<div id="images"></div>
这是您需要的代码,photo_array
可能看起来不一样,但应该不会引起问题,只需遍历它即可。 Here's link 对我的考验。
我正在尝试通过我的应用程序中的 Ajax 获取 Flickr 的 API 响应。我正在使用 Laravel。我有一个特定的路由和一个函数来进行 API 调用。
//Route.php
Route::post('/getlocation/{latitude}/{longitude}', ['as'=>'get-location', 'uses'=>'FormController@getLocationImage']);
和函数
//getLocationImage()
//GET THE IMAGES BASED ON THE LOCATION FROM FLICKR.
$api_key = 'my_api_key_is_here';
$tag = 'night,sunset,sunrise,park,people,summer,tree,flowers';
$lat = '&lat='.$latitude;
$lon = '&lon='.$longitude;
$perPage = 12;
$url = 'https://api.flickr.com/services/rest/?method=flickr.photos.search';
$url.= '&api_key='.$api_key;
$url.= '&tags='.$tag;
$url.= $lat;
$url.= $lon;
$url.= '&per_page='.$perPage;
$url.= '&format=json';
$url.= '&nojsoncallback=1';
$response = json_decode(file_get_contents($url));
$photo_array = $response->photos->photo;
return Response::json(["success"=>"true", "photo_array"=>$photo_array]);
现在在 jquery 函数中,我正在调用 Ajax。
$("#nomination-name").focus(function(){
$.post(
'/getlocation/'+$("#newLatitude").val()+"/"+$("#newLongitude").val(), // location of your php script
{ user: "bob", id: 1234 }, // any data you want to send to the script
function( data ){ // a function to deal with the returned information
alert(data);
});
});
但是当我尝试提醒数据时,它只显示 [object Object]
我怎样才能在 Ajax 调用中得到响应?
控制台的输出如下所示。
Object
photo_array: Array[12]
0: Objectfarm: 8
id: "16325992992"
isfamily: 0
isfriend: 0
ispublic: 1
owner: "35736862@N03"
secret: "b7044c5b46"
server: "7548"
title: "#snow #trees #winter #parcangrignon #montreal #livemontreal #themainmtl #mtlblog #vscocam"
__proto__: Object
1: Object
..............
您要实现的目标应该不会太难。我看不到 photo_array 的内容,但只要您知道如何遍历对象就没问题。
for(i=0;i<data.images.length;i++) {
$("#images").append(data.images[i])
}
HTML
<div id="images"></div>
这是您需要的代码,photo_array
可能看起来不一样,但应该不会引起问题,只需遍历它即可。 Here's link 对我的考验。