0

「送信」ボタンで奇妙なエラーが発生しています

私のページには次のコードがあります

    <div id="fb-root"></div>
    <script type="text/javascript">
        (function(d, s, id) {
            var js, fjs = d.getElementsByTagName(s)[0];
            if (d.getElementById(id)) return;
            js = d.createElement(s);
            js.id = id;
            js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&amp;appId=<myAppId>";
            fjs.parentNode.insertBefore(js, fjs);
        }(document, 'script', 'facebook-jssdk'));
    </script>
    <br/>
    <fb:like send="true" width="450" show_faces="true"></fb:like>

IP アドレス経由でアプリケーションにアクセスすると「送信」ボタンは正常に機能しますが、ドメイン名を使用すると Facebook が返されます

The page at http://<...>.com:8080/pages/question.jsf could not be reached because the server returned status code 401.

その間、「いいね」ボタンは正常に機能します。アプリケーションのフロントエンドは JSF2+Primefaces で構築されています。

任意のアイデアをいただければ幸いですありがとう

編集:アプリケーションがポート 8080 に展開されたときに「送信」ボタンが機能しないことが最初にわかりました。AS ポートを標準ポート (80) に変更すると、1 つを除くほとんどすべてのページから問題がなくなりました。最も奇妙なことは、ボタンがページで機能しないことですが、これを次のようなパラメーターを使用して正確にページと呼ぶと

http://{some_url}.com?param_id=sometexthere

ボタンが魔法のように機能し始めます。電話するだけなら

http://{some_url}.com

「送信」ボタンに 401 エラーが表示されます。他のすべてのページでは、ボタンは正常に機能します。

誰かがこれについていくつかの光を広げてください。ありがとう

4

1 に答える 1

1

Ok。これはすべてかなり奇妙です。

この問題に初めて遭遇したとき、アプリケーション サーバー (AS) のポートを 8080 から 80 に変更しました。これで問題は解決しました。後で学んだように、部分的にしかありません。エラーは 1 つのページで持続しました。アプリケーションサーバーの作業ディレクトリの完全なクリーニングなど、イメージングできることはすべて試しました。何も結果につながりませんでした。最終的に問題を解決したのは、クリーンな AS インスタンスでした。残念ながら、そこで何が起こったのか正確にはわかりません。アプリケーションがクローズド ベタから成長し、承認がオフになった後、何らかの理由でこの変更がメイン ページに適用されなかったことが最も推測されます。ASキャッシュのどこかにスタックし、すべての一時ファイルを削除しても残っていました。

私が使用しているASはglassfish v3.1.2です

うまくいけば、これは誰かが風車で苦労するのを1日か2日救うことができます

于 2012-04-05T11:25:54.943 に答える