【问题标题】:Requesting data through GET request to express server returns document instead of data通过 GET 请求请求数据以表达服务器返回文档而不是数据
【发布时间】:2017-08-29 11:50:27
【问题描述】:

我正在尝试使用 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} ) );
    });
});

【问题讨论】:

    标签: javascript jquery node.js express instagram-api


    【解决方案1】:

    试试res.json({urls: media_urls})。这将自动为您设置标题。

    代替

    res.send( JSON.stringify({urls: media_urls} ) )

    【讨论】:

    • 我试过了,但不幸的是问题仍然存在。
    • 嗯。单击按钮后,地址栏中(在浏览器中)的 url 是什么?是否已更改为/retrieve_photos。听起来您的整个页面可能已重新加载为 /retrieve_photos
    • 谢谢,我已经找到问题了。但是是的,整个页面被重新加载为/retrieve_photos,因为按钮位于具有action='retrieve_photos'属性的表单内
    【解决方案2】:

    所以我已经发现了问题:按钮在这样的表单中:

    form#retrieve_photos_insta_form(method='GET', action='retrieve_photos')
        button.btn.btn-primary#retrieve_photos_btn Retrieve
    

    因此,当单击按钮时,对/retrieve_photos 的调用将通过表单完成,而不是我在问题中编写的 javascript 代码。

    更改代码使没有表单,按钮直接触发javascript代码解决了我的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-31
      • 1970-01-01
      • 2020-06-26
      • 1970-01-01
      • 2020-11-12
      • 2018-07-16
      相关资源
      最近更新 更多