AjaxRequest.get()不接受来自Response.Write()函数的text / Html

时间:2012-05-19 10:30:00

标签: c# asp.net ajax response.write

我正在使用AjaxRequest中的AjaxRequest.Get()方法 以下是analysis.aspx

中的内嵌javascript
 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();     
 }

当我使用谷歌浏览器调试javascript时,我发现innerHMTL的值未定义,尽管一切都很顺利。
所以我不明白为什么AjaxRequest类不接受来自Reponse.Write()的文本输出。

P.S。 :我还尝试了Response.ContentType = "text/Html";Reponse.Fluch() 请提前指导我。

1 个答案:

答案 0 :(得分: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; } 
            } 
        ); 
    }