2013-01-12 56 views
0

我想在ASP.NET MVC應用程序中使用JavaScript XMLHttpRequest()對象進行測試。 我已經寫了,我放入查看下面的測試代碼 - 「!DO IT」使用JavaScript XMLHttpRequest()與ASP.NET MVC

<script type="text/javascript"> 
var request; 

function getAJAX() { 
    request = new XMLHttpRequest(); 
    request.open("GET", "test.txt"); 
    request.onreadystatechange = checkData(); 
    request.send(null); 
} 


function checkData() { 
    if (request.readyState == 4) { 
     if (request.status == 200) { 
      alert(request.responseText);     
     } 
    } 
} 
</script> 

<form action=""> 
    <p> 
     <button type="button" onclick="getAJAX()">DO IT!</button> 
    </p> 
</form> 

當我點擊按鈕,腳本函數被調用,但"request.onreadystatechange"從不改變。 我有這幾個問題 -

  1. 有沒有一種簡單的方法來追蹤什麼與request.open()呼叫發生?
  2. XMLHttpRequest()對象是否可以在ASP.NET MVC應用程序中工作?
  3. 我必須對Global.asax文件(或其他更改)進行更改才能使其工作?
  4. 我在"base"目錄(與Global.asax文件位置相同)中有"test.txt",那是request.open調用的目錄?

注意:我試圖做到這一點沒有jQuery的)

非常感謝!

回答

1

您正在將onreadystatechange設置爲執行checkData結果的回調。設置onreadystatechange等於checkData代替,你應該是好去:

function getAJAX() { 
    request = new XMLHttpRequest(); 
    request.open("GET", "test.txt"); 
    request.onreadystatechange = checkData; // Don't execute checkData 
    request.send(null); 
} 

至於你的其他問題:

有沒有一種簡單的方法來追蹤什麼與request.open發生()呼叫?

使用Firebug或您選擇的開發工具來檢查AJAX請求。

XMLHttpRequest()對象是否可以在ASP.NET MVC應用程序中工作?

是的,它會正常工作。

我必須對Global.asax文件(或其他更改)進行更改才能使其工作?

不是我所知道的。

我在「基本」目錄(與Global.asax文件相同的位置)中有「test.txt」,那是request.open調用的外觀?

也許吧?這實際上取決於您的路由規則以及您如何配置IIS。

+0

非常感謝Andrew!這工作! –

+0

@ABogus:沒問題!樂意效勞。 –