1

vf ページ ({!$label.labelname}) の場合のように、サイドバー コンポーネントではカスタム ラベルにアクセスできないことはご存知のとおり ({!$label.labelname})、apex で webService クラスを作成する必要がありました。カスタム ラベルを作成し、sforce.apex.execute を使用して jQuery スクリプトでそのクラスにアクセスします。これで、ホームページが読み込まれると、サイドバー コンポーネントが正しく読み込まれ、以下のスクリプトが問題なく実行されます。しかし、テキストボックスにテキストを入力してテキストを検索すると、myVfPage が新しいタブにロードされ、期待される結果が表示されますが、サイドバー コンポーネントにテキストを入力して検索をクリックすると、myVfPage にリダイレクトされません。コンソールを確認すると、次のような 2 つのエラーが表示されますjavascript エラー。これはエラーメッセージが読むものです:

1:- リソースの読み込みに失敗しました: サーバーは 500 のステータスで応答しました (内部サーバー エラー)

2:-Uncaught {faultcode:'sf:INVALID_SESSION_ID', faultstring:'INVALID_SESSION_ID: SessionHeader で無効なセッション ID が見つかりました: 不正なセッション', }

ここで何をすべきかわかりません 親切に助けてください

<script type="text/javascript" src="/resource/jQuery"></script>
<script type="text/javascript" src="/resource/connection"></script>
<script type="text/javascript" src="/resource/apexjs" ></script>
<script type="text/javascript">
var j$ = jQuery.noConflict();
var sid = getCookie('sid'); 
var server = "https://"+window.location.host+"/services/Soap/u/26.0";
alert(server);
sforce.connection.init(sid, server);
var custLabelSearchText = sforce.apex.execute("JqueryCustomLabelController","getCustomLabel", {});
j$(document).ready(function(){
   alert(getCookie('sid'));
   j$("#searchIt").bind('click', function(){
     if(j$("#userInput").val() == ''){
        alert(custLabelSearchText);
        custLabelSearchText ='';
    }else{
        window.open("/apex/myVfPage?searchText="+(j$("#userInput").val()), "_blank");
    }
});
});
</script>
<b>Search your Text here</b><br/>
<input id="userInput"  type="text"/><br/>
<input type="button" value="Search" id="searchIt"/>
4

1 に答える 1

0

よくわかりませんが、ページヘッダーにセッションIDを挿入してみてください。

<script type="text/javascript">
    var __sfdcSessionId = '{!GETSESSIONID()}';
</script>
于 2012-11-26T08:35:35.700 に答える