0
我想要做一些非常簡單的事情,用戶點擊一個鏈接,並且帶有文件上傳輸入的迷你表單出現在它下面的某處。當Ajax請求不應該加載整個頁面時,它將不會出現
但是,我的ajax代碼不合作。相反,它會加載整個當前(我認爲)頁面。我前一段時間再次遇到了這個問題,並且我設法解決了這個問題,但是對於我的生活,我不記得我是如何做到的。
現在真奇怪的是,當我在我的本地計算機上嘗試它時,它工作正常,但在實際的Web服務器上卻沒有。
代碼:
function ajaxRequest(targetUri, parameters, cbFunction){
if(window.XMLHttpRequest){
request = new XMLHttpRequest();
}else{
request = new ActiveXObject("Microsoft.XMLHTTP");
}
request.onreadystatechange = cbFunction;
request.open("POST", targetUri, true);
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.send(parameters);
}
function addImage(){
parameters = "action=ajaxRequest";
ajaxRequest("http://www.mysite.com/gallery/addImage.php", parameters, function(){
if((request.readyState == 4) && (request.status == 200)){
document.getElementById("formContainer").innerHTML = request.responseText;
}
});
}
我的PHP文件:
function addImage(){
echo '
<div class="mainBlockBody">
<form action="index.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="galleryAction" value="addImage" />
<input type="file" name="upFile" />
<input type="submit" value="Submit" />
</form>
</div>
';
}
if($_POST['action'] == 'ajaxRequest'){
addImage();
}
鏈接&佔位符:
<a href="javascript:addImage()">Add Image</a>
<div id="formContainer"></div>
任何幫助,非常感謝!
編輯:
我想我已經把問題縮小到了......路徑。在這個頁面http://bit.ly/dXrGY6它一切正常,使用相對路徑。用絕對路徑(如「http:// www ...」或「../ test/.....」)替換它會再次出現故障。我在我的網站的另一部分使用絕對路徑,它工作正常:http://bit.ly/fCmmjy。我不知道爲什麼它不在這裏工作...
我不明白什麼是錯的。有任何想法嗎?
我通過之前使用的exit()嘗試這樣做,也沒有工作。我只是在die()的情況下再次嘗試它,但它也沒有工作。也許這與頁面結構有關,而不是代碼本身?這裏或多或少有相同的代碼在另一個頁面上(你可以查看源代碼),正常工作http://bit.ly/fCmmjy(點擊標誌來改變翻譯)。這裏是當前問題的頁面(你必須登錄 - 對不起)http://bit.ly/ijIyc2 – Booya 2010-12-20 15:38:36