1

スクリプト ajax 応答の挿入が機能しませんでした

PHPでは、次のように2つの部分を持つ配列があります

array('threeRowHtml'=> '<HTML output string>',
'jsCode'=> '<script output string>'
)

その配列を ajax 呼び出しに返します。応答を解析したところ、これらの文字列のうち 2 つを取得できました。それらを自分のページに挿入し、評価して return js スクリプトを実行したいと思います。「threeRowsHtml」を挿入できましたが、「jsCode」では機能しませんでした。

$.ajax({
            url: postUrl,
            type: "post",
            beforeSend:function(){
                process.show(); // just my popup
            },
            success: function(data){
                data = $.parseJSON(data);

                if(data.returnCode == 1){
                    //var jsCode = eval("(" + data.jsCode + ')');
                    console.log(data.jsCode); // print out OK
                    $('#rp_script').replaceWith(data.jsCode); // did not work
                    $('#rp_content').replaceWith(data.threeRowsHtml); // insert into page OK

                }
                else{
                    $('#rp_errors').replaceWith(data.errorHtml);
                }

                process.hide();
            }
        }) 

ここに応答を挿入する場所があります

<div id="rp_content">

</div>

<div id="rp_actions">

</div>

<div id="rp_script">

</div>
<div id="rp_errors"></div>

戻りスクリプト文字列の構文は問題ありませんでした。間違っていると、JS エラー トークンに気付くからです。結果は常に「jsCode」の空の文字列であり、何が問題なのかわかりません。どんな助けでも大歓迎です!

4

3 に答える 3

0

応答が適切にエスケープされるのが好きではありません。文字列にエスケープされていない " があります。

于 2013-07-30T05:13:14.367 に答える