我正在使用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()
的文本输出。
PS:我也尝试过Response.ContentType = "text/Html";
和Reponse.Fluch()
。
请提前指导我。
在 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; }
}
);
}