Ajax 单页应用程序和开放图形
我正在编写一个使用下划线模板的SPA。该应用程序搜索音乐专辑并对其进行评级,并通过ajax返回结果。如果facebook open graph metatags无法动态更改,并且无论搜索结果如何,页面的url都是恒定的,那么我如何才能让用户分享他们对某个相册的评价 (工业工程)Ajax 单页应用程序和开放图形,ajax,facebook,facebook-opengraph,underscore.js,single-page-application,Ajax,Facebook,Facebook Opengraph,Underscore.js,Single Page Application,我正在编写一个使用下划线模板的SPA。该应用程序搜索音乐专辑并对其进行评级,并通过ajax返回结果。如果facebook open graph metatags无法动态更改,并且无论搜索结果如何,页面的url都是恒定的,那么我如何才能让用户分享他们对某个相册的评价 (工业工程) 并更新这些属性以反映给定的搜索结果。我处理这一问题的方法是创建一个动态页面,我将其用作打开的图形对象,该页面仅从url参数填充,并使用元重定向重定向回SPA 多亏了本教程,我找到了一个解决方案: 如果http请求的用
并更新这些属性以反映给定的搜索结果。我处理这一问题的方法是创建一个动态页面,我将其用作打开的图形对象,该页面仅从url参数填充,并使用元重定向重定向回SPA
多亏了本教程,我找到了一个解决方案:
如果http请求的用户代理
包含“facebookexternalhit”,我只发送元标记
下面是使用node和express的后端的一些代码:
app.get('/', (req,res) => {
if(req.header('user-agent').includes('facebookexternalhit'){
res.send(`
<meta property="og:title" content="The Slits' Cut" />
`);
} else {
res.sendFile(index.html);
}
})
app.get('/',(req,res)=>{
if(请求标头('user-agent')。包括('facebookexternalhit')){
res.send(`
`);
}否则{
res.sendFile(index.html);
}
})
您也可以为此编写自己的中间件。通过创建一个单独的OpenGraph控制器解决了这个问题,该控制器将由FB.api调用rates指向。该控制器返回一个html页面,其中包含OG元标记,这些标记由标题、图像等组成的模型填充。@AesopWaits,您愿意共享该解决方案吗?我是r在SPA上运行的不同“页面”需要不同的OG标签。尝试了这个方法,但facebook也遵循了重定向,所以当用户代理没有以“facebookexternalhit”开头时,我在服务器上从后端链接重定向到前端链接。
app.get('/', (req,res) => {
if(req.header('user-agent').includes('facebookexternalhit'){
res.send(`
<meta property="og:title" content="The Slits' Cut" />
`);
} else {
res.sendFile(index.html);
}
})