我正在尝试使用Instagram api来检索一些数据。问题是,当从快速服务器向客户端发回数据时,客户端不会将数据记录到控制台,而是只显示一行只显示一行的html文档:
{"urls":["https://scontent.cdninstagram.com/t51.2885-15/s320x320/e35/21042827_129089451063629_713103852630441984_n.jpg"]}
客户方:
$('#retrieve_photos_btn').click(function(){
$.ajax({
url: "/retrieve_photos",
type: "GET",
success: function(result){
console.log(result);
}
});
});
App.js:
app.get('/retrieve_photos', function(req, res){
var options = {
method: 'GET',
url: 'https://api.instagram.com/v1/users/self/media/recent/?access_token='+access_token
}
request(options, function(error, resp, body){
if(error) console.log("Retrieving photos failed: " + error);
var body_parsed = JSON.parse(body);
var media_urls = [];
// Iterate over all received media
for(var i = 0; i < body_parsed.data.length; i++){
media_urls.push(body_parsed.data[i].images.low_resolution.url);
}
res.send( JSON.stringify( {urls: media_urls} ) );
});
});
答案 0 :(得分:1)
试试res.json({urls: media_urls})
。这将自动为您设置标题。
而不是
res.send( JSON.stringify({urls: media_urls} ) )
答案 1 :(得分:0)
所以我已经发现了问题:按钮位于这样的表格中:
form#retrieve_photos_insta_form(method='GET', action='retrieve_photos')
button.btn.btn-primary#retrieve_photos_btn Retrieve
因此,当点击按钮时,对/retrieve_photos
的调用将通过表单完成,而不是我在问题中写的javascript代码。
更改代码以便没有表单,按钮直接触发javascript代码修复了我的问题。