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;
    }

whengetAnalysis(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 时,我发现 value ofinnerHMTL是未定义的,尽管一切都很好。
所以我不明白为什么 AjaxRequest 类不接受来自Reponse.Write().

PS:我也试过Response.ContentType = "text/Html";Reponse.Fluch()
请提前指导我。

4

1 回答 1

0

您需要在 onsuccess 函数中设置 div 内容,因为它在 AJAX 请求完成时被异步调用

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 回答