我正在使用AjaxRequest中的AjaxRequest.Get()
方法
以下是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();
}
当我使用谷歌浏览器调试javascript时,我发现innerHMTL
的值未定义,尽管一切都很顺利。
所以我不明白为什么AjaxRequest类不接受来自Reponse.Write()
的文本输出。
P.S。 :我还尝试了Response.ContentType = "text/Html";
和Reponse.Fluch()
请提前指导我。
答案 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; }
}
);
}