nodejs res.end(data)不在某些Facebook网页上提供

时间:2016-07-29 15:25:15

标签: javascript node.js facebook cookies

我有基于nodejs的新闻网站。我在res.end(数据)之前和之后添加了日志,并向用户提供了一个普通的html文件。我正在服务的html数据的一部分,我正在加载一个隐藏的图像(尝试在头部和身体)和记录隐藏图像的加载。

现在我的问题是我看到有很多请求来参考m.facebook.com,它显示了服务于请求的nodejs的日志,但隐藏的图像加载没有被记录(未被调用)。

我尝试过的事情:

要消除这些请求可能是facebook抓取工具,我在客户端添加了一个cookie,我可以看到cookie正在未加载隐藏图像的请求中。

网页样本的网址为http://specialcoveragenews.in/news/politics-news/navjot-singh-sidhu-join-in-aap-on-15-august-and-will-campaign-for-the-party-28799

res代码是:

    profileLogger.logDetails(req,"static-callingRender",{"url":req.pathname,"user agent":req.headers["user-agent"],"requestId":req.environment.requestId,"isBot":isBot,"ip":ip,"isold":isOldUser,"referer":referer});
    var renderUrl = "partners/"+req.partner+"/"+props.template;
    res.render(renderUrl, {
          data : dataV

        }, function(err, html) {
            if (err) {
                logger.error('in index file', err.message);
                return next(err);
            }
            profileLogger.logDetails(req,"static-rendering",{"url":req.pathname,"user agent":req.headers["user-agent"],"requestId":req.environment.requestId,"isBot":isBot,"ip":ip,"isold":isOldUser,"referer":referer});
            res.writeHead(200, {'Content-Type': 'text/html'});
            res.end(html);
            profileLogger.logDetails(req,"static-complete-rendering",{"url":req.pathname,"user agent":req.headers["user-agent"],"requestId":req.environment.requestId,"isBot":isBot,"ip":ip,"isold":isOldUser,"referer":referer});
        });
    return;

}

在nodejs服务端添加的所有日志即将到来,但隐藏的图像加载日志不会到来。

这种情况只发生在facebook引用网址m.facebook.com上,仅适用于网页浏览,因为这些请求的用户代理就像

Mozilla / 5.0(Linux; U; Android 4.2.2; zh-gb; GT-I9060 Build / JDQ39)AppleWebKit / 534.30(KHTML,类似Gecko)版本/ 4.0 Mobile Safari / 534.30 [FB_IAB / FB4A; FBAV / 86.0.0.19.69;]

我们一直在努力,并且无法理解什么是错误的,因为所有用户都不会出现问题,因为m.facebook.com是针对某些用户的特定用户。

0 个答案:

没有答案