0

私はAjaxRequestAjaxRequest.Get()のメソッドを使用しています。 以下はインラインJavaScriptです
analysis.aspx

 function getAnalysis(type) {            
        var innerHtml;      
        AjaxRequest.get(
            {
                'url': 'getAnalysis.aspx?type=' + type
                , 'onSuccess': function (req) { innerHtml = req.responseText; }
            }
        );
        document.getElementById("div_analysis").innerHTML = innerHtml;
    }

getAnalysis(type)呼び出されると、analysis.aspxすべてがうまくいきます-ajaxリクエストが適切に送信され、応答が適切に送信されます。しかし、最終的に の値はinnerHTML未定義のままです。

以下はgetAnalysis.aspx- のコードです

 protected void Page_Load(object sender, EventArgs e)
 {
    if(type == "somwthing") str = load();    
    Response.Clear();     
    Response.CacheControl = "no-cache";              
    Response.Write(str);      
    Response.End();     
 }

Google Chrome を使用して JavaScript をデバッグしたところ、の値innerHMTLが未定義であることがわかりましたが、すべてうまくいきました。
だから、AjaxRequest クラスが からのテキスト出力を受け入れない理由がわかりませんReponse.Write()

PS: 私も試しResponse.ContentType = "text/Html";てみReponse.Fluch()ました。
事前にご案内ください。

4

1 に答える 1

0

AJAX リクエストが完了すると非同期で呼び出されるため、 onsuccess 関数で div コンテンツを設定する必要があります。

function getAnalysis(type) {             
        var innerHtml;       
        AjaxRequest.get( 
            { 
                'url': 'getAnalysis.aspx?type=' + type 
                , 'onSuccess': function (req) { document.getElementById("div_analysis").innerHTML = req.responseText; } 
            } 
        ); 
    } 
于 2012-05-19T10:38:17.913 に答える