0

へのajax呼び出しを行っているページがありPageMethod、その結果、divに追加する必要があるhtml文字列を取得しています。現在、Html 文字列にはいくつかの JavaScript コードが含まれているため、html を div に追加した後、この js コードが実行されることを期待しています。しかし、問題は、Microsoft JScript runtime error: Access is denied.globalEval メソッドが実行しようとすると、このエラーがスローされるというエラーが発生することです。

これは私が行う ajax 呼び出しです

var data ={id: id};

$.ajax({

    type: "POST",
    url: "/srv/Loader.aspx/LoadUserControl",
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify(data),
    dataType: "json",
    success: function (data) {
       $('#TargetDivID').html(data.d);
    },
    error: function (error) {
       $('#TargetDivID')..html("Control can not be loaded");
       console.log("LOG: Exeption trying to load Control:\n" + error.responseText);
    }
});

WebMethod によって返される Html は次のとおりです。

<div class="someclass" id="inHouseAdModule" style="display:none;">
Some Html Content
    <script type="text/javascript">
        $(document).ready(function () {
            Some logic goes here
        });
    </script>

</div>

どうすればこれを修正できますか?

編集:

 <div class="someclass" id="inHouseAdModule" style="display:none;">
    Some Html Content
        <script type="text/javascript">            
                Some logic goes here            
        </script>
 </div>

同様に機能しません。

編集: JS コードの先頭にデバッガーを追加しましたが、その時点に到達する前に例外がスローされました。

<script type="text/javascript"> 
   debugger;           
   Some logic goes here            
</script>
4

1 に答える 1

0

エラーを検索した後、リクエストの URL が間違っている可能性が高いというのが一般的なコンセンサスです。Web メソッドが GET を受け入れる場合は、ブラウザーで URL をヒットして、正しいことを確認してください。さらに、ブラウザーの開発者ツールを使用してネットワーク トラフィックをチェックし、要求と応答に予期されるヘッダーが含まれていることを確認できます。

================================================== ==========

さらに

ドキュメントはすでに準備が整っている可能性があります。HTML を次のように変更して、JavaScript をすぐに実行します。

<script type="text/javascript"> /*Some logic goes here*/ </script>

後で再度呼び出す必要がある場合は、関数ラッパーを保持し、宣言の直後に関数を呼び出します。

<script type="text/javascript"> function MyFunc() { Some logic goes here } MyFunc(); </script>

================================================== ==========

別のアプローチ

動的に作成されたコンテンツを AJAX 経由で読み込んでページに挿入する代わりに、動的に作成されたコンテンツを返す URL を指す HTML IFRAME を使用することをお勧めします。これは、広告コンテンツの一般的なアプローチです。

于 2012-08-21T13:24:02.333 に答える