Ajax请求在div不应该加载整个页面

时间:2010-12-20 02:35:49

标签: php javascript 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();
}

Link&amp;占位符:

<a href="javascript:addImage()">Add Image</a>
<div id="formContainer"></div>

非常感谢任何帮助!

编辑:

我想我已经把问题缩小到了...路径。在这个页面http://bit.ly/dXrGY6中,使用相对路径一切正常。用“http:// www ...”或“../ test / .....”等绝对路径替换它会使其再次出现故障。我在我的网站的另一部分使用绝对路径,它工作正常:http://bit.ly/fCmmjy。我不知道为什么它在这里不起作用......

我无法弄清楚出了什么问题。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你确定你的PHP代码不再吐出来了吗? 尝试添加die

if($_POST['action'] == 'ajaxRequest'){
  addImage();
  die();
}