2012-05-19 67 views
0

我使用AjaxRequest.Get()方法從AjaxRequest
以下是JavaScript的在analysis.aspxAjaxRequest.get()不接受來自Response.Write()函數的文本/ Html函數

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()
請提前指導我thnx。

+0

是什麼'負載()'的定義時設置的功能的onSuccess在div內容,因爲它被稱爲異步? –

+0

多數民衆贊成在虛擬,想法是,它返回一個字符串 – j4m4l

回答

0

您需要的AJAX請求完成

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

thxn現在它的工作,但還有一件事,返回的HTML包含一些腳本標記,這是不評估(我猜bcoz的異步調用),所以我如何得到它們評估。 – j4m4l

+1

你可以通過提取腳本元素(讓我們用jQuery說),然後對它們進行評估。您可以做的最好的事情是不要在您傳輸的HTML中包含腳本元素。在大多數情況下,沒有理由這樣做。另外我相信只有當您嘗試添加需要立即執行的腳本時纔會出現問題。如果你添加一個只聲明一些函數的腳本,一切都應該工作。最後,如果你覺得你真的需要這樣做,那就問一個單獨的問題,因爲這是一個單獨的問題。確保明智地選擇標題,並且沒有服務器代碼的示例 – Stilgar