0

私はxmlからページデータを取得し、共有時にこのデータを表示したいのですが、以下は私のコードです:

$.ajax({
            type: "GET",
            url: "data/artikels.xml",
            dataType: "xml",
            success: function(xml){
                oArticle = $(xml).find('article:eq('+id+')');
                var regExp = /.*(?:youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=)([^#\&\?]*).*/;
                var match = oArticle.find('youtube').text().match(regExp);  
                $('head').append('<meta property="og:title" content="'+oArticle.find('title').text()+'" />'
                    +'<meta property="og:description" content="'+oArticle.find('shortcontent').text().replace(/&/g, '&amp;').replace(/>/g, '&gt;').replace(/</g, '&lt;').replace(/"/g, '&quot;')+'" />'
                    +'<meta property="og:image" content="'+oArticle.find('image').text()+'" />').trigger('create');  
                $('#container').append('<div id="title_article">'+oArticle.find('title').text()+'</div>'
                    +'<div id="date_article">'+oArticle.find('date').text()+'</div>'
                    +'<iframe width="600" height="315" src='+'"'+'http://www.youtube.com/embed/'+match[1]
                    +'<div id="content_article">'+oArticle.find('fullcontent').text()+'</div>').trigger('create');

            }
        })

Facebook デバッガーに自分の URL を入力すると、他の画像/タイトル/説明が取得され、共有しただけでも同じことが起こります。これを解決する方法はありますか?

敬具

トゥーン

4

1 に答える 1

1

Facebook は、プレーンな HTML ページを取得して、リンクのメタ コンテンツを生成します。JavaScript コードは実行されません。

バックエンド スクリプトでこれを処理し、AJAX でページをロードする代わりに、ページのロード時にメタ タグを提供することをお勧めします。一般に、ユーザーからの入力を受け取らない AJAX リクエストがサイトにある場合は、HTML をユーザーに提供する前にサーバーによって生成された可能性があるため、何か問題があります。(したがって、ユーザーのブラウザが行う必要があるリクエストの量を減らします)

于 2012-06-15T11:35:41.657 に答える