我正在尝试做一些非常简单的事情,用户点击链接,并在其下方的某处显示带有文件上传输入的迷你表单。
但是,我的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();
}
Link&amp;占位符:
<a href="javascript:addImage()">Add Image</a>
<div id="formContainer"></div>
非常感谢任何帮助!
编辑:
我想我已经把问题缩小到了...路径。在这个页面http://bit.ly/dXrGY6中,使用相对路径一切正常。用“http:// www ...”或“../ test / .....”等绝对路径替换它会使其再次出现故障。我在我的网站的另一部分使用绝对路径,它工作正常:http://bit.ly/fCmmjy。我不知道为什么它在这里不起作用......
我无法弄清楚出了什么问题。有什么想法吗?
答案 0 :(得分:0)
你确定你的PHP代码不再吐出来了吗?
尝试添加die
if($_POST['action'] == 'ajaxRequest'){
addImage();
die();
}