我正在將我現有的標準JS ajax函數轉換爲jQuery。到目前爲止,我已經成功轉換了所有成員,這似乎是導致未捕獲的引用錯誤。AJAX未捕獲的引用錯誤,不清楚爲什麼?
對於我添加網址的功能,我有一個按鈕,觸發此AJAX功能:
function showAdd(str)
{
document.getElementById("content01").innerHTML="";
if (str=="")
{
document.getElementById("content01").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("content01").innerHTML=xmlhttp.responseText;
document.getElementById("response").innerHTML = "";
}
}
xmlhttp.open("GET","addUrlForm.php?addUrl="+str,true);
xmlhttp.send();
}
阿賈克斯引導到HTML表單從PHP的呼應(我不會包括因爲我知道這是不是導致問題)。表單動作指導我插入AJAX功能在這裏:
function insert()
{
var name= encodeURIComponent(document.getElementById('name').value);
var releaseTime = encodeURIComponent(document.getElementById('releaseTime').value);
var releaseDay = encodeURIComponent(document.getElementById('releaseDay').value);
var category = encodeURIComponent(document.getElementById('category').value);
var genre = encodeURIComponent(document.getElementById('genre').value);
var url= encodeURIComponent(document.getElementById('url').value);
xmlhttp.open('get', 'addUrl.php?name='+name+'& releaseTime=' +releaseTime+'& releaseDay=' +releaseDay+'& category=' +category+'& genre=' +genre+'& url=' +url);
xmlhttp.onreadystatechange = urlRefresh;
document.getElementById("response").innerHTML = "Processing Request. Please wait a moment...";
xmlhttp.send(null);
return;
}
而從這個函數的數據轉移到一個INSERT語句,並在數據庫中結束。因爲它是上面的代碼正在工作。當我將SHOWADD ajax函數更改爲jQuery時:
function showAdd(str) {
$('#response').html('loading...');
$.ajax({
type: "GET",
url: "addUrlForm.php",
data: "addUrl=" + str,
success: function(msg) {
$('#response').empty();
$('#content01').html(msg).show();
},
error: function() {
alert('error');
}
});
};
它吐出未捕獲的引用錯誤。我知道這不是一個巨大的錯誤,但如果另一位同伴的眼睛可以看一看,看看我錯過了什麼會有所幫助。謝謝。
誤差顯示如下:「未捕獲的ReferenceError:XMLHTTP沒有定義」上線105:
"xmlhttp.open('get', 'addUrl.php?name='+name+'& releaseTime=' +releaseTime+'& releaseDay=' +releaseDay+'& category=' +category+'& genre=' +genre+'& url=' +url);"
什麼是錯誤信息的「確切」文本,它是什麼行?而且,我討厭問一個明顯的問題 - jQuery是否包含在您的頁面中? – jfriend00
嗨,錯誤如下:第105行:「未捕獲的ReferenceError:xmlhttp未定義」:「xmlhttp.open('get','addUrl.php?name ='+ name +'&releaseTime ='+ releaseTime +'&releaseDay =' + releaseDay +'&category ='+ category +'&genre ='+ genre +'&url ='+ url);「。 jQuery包含在index.html頁面中,我所有的JS函數都在一個獨立的JS文件中。所有其他功能正在工作,這是唯一一個有錯誤的。 – Corey
我把這個錯誤放到你的問題中,這對任何讀你問題的人來說都更具可讀性和有用性。多行事物在註釋中不可讀。我也寫了一個答案,因爲具體的錯誤提供了關於發生什麼的線索。 – jfriend00