我正在嘗試對ASP頁面執行簡單的AJAX調用,這會重置會話變量並在完成時發佈一條小消息。我這樣做純粹是爲了學習AJAX。AJAX/ASP - 簡單的任務但我卡住了?
這個例子來自於W3學校的網站,但自從將它應用到我的頁面後,我似乎無法使其工作,並且沒有產生任何錯誤,這很煩人,因爲我無法調試它。
這是我的JS,被稱爲當用戶點擊一個按鈕[清除表單]:
function resetSearchForm()
{
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("notification").innerHTML=xmlhttp.responseText;
document.getElementById('notification').style.visibility = 'visible';
}
}
xmlhttp.open("GET","clearSearchData.asp",true);
xmlhttp.send();
document.searchFrm.searchStr.value='';
document.searchFrm.vertical.checked = true;
document.searchFrm.horizontal.checked = true;
document.getElementById('dateRange').selectedIndex = 0;
document.searchFrm.searchStr.focus();
}
這是ASP(clearSearchData.asp),可清除我的會話變量,並寫入一條消息:
Response.Expires = -1
Session("search-str-boolean") = ""
Session("search-str-plain") = ""
Session("date-range") = ""
Session("date-from") = ""
Session("date-to") = ""
Session("specificDate") = ""
Session("peopleStr") = ""
Session("orientation") = ""
Response.Write "Form has been reset"
任何人都可以看到我要去哪裏錯了嗎?我一直在看它很長一段時間,我只是看不到它。
函數本身的工作原因是函數的最後部分得到處理,清除表單值的位......但是...... AJAX調用不會發生,因爲會話變量仍然包含數據並且消息不會不會出現。
許多在此先感謝...
UPDATE - - - - - - - - - - -
現在的作品。問題是我沒有包含ASP頁面的完整URL。感謝'thedaian'(下)指出這一點
在onreadystatechange函數的某處粘貼警報(「某事」)行,以查看它是否實際上被調用。另外,使用Firebug或現代瀏覽器開發工具進行調試。強制使用jquery評論。 – thedaian
我在'onreadystatechange'函數中添加了alert(),所以我假設AJAX已經工作 – TheCarver
愚蠢的問題,但我必須問:你有一個id爲'notification'的元素來顯示ajax響應嗎? – bfavaretto