Ajax-запрос загружает всю страницу в div, когда он не должен - PullRequest
0 голосов
/ 20 декабря 2010

Я пытаюсь сделать что-то очень простое, пользователь щелкает ссылку, и где-то под ней появляется мини-форма с вводом файла для загрузки.

Однако мой код ajax не взаимодействует.Вместо этого он загружает всю текущую (я думаю) страницу.Некоторое время назад у меня снова возникла эта проблема, и мне удалось ее исправить, однако я не могу вспомнить, как я это сделал.

Теперь действительно странная вещь заключается в том, что, когда я пробую это на своемлокальный компьютер работает нормально, но на реальном веб-сервере - нет.

Код:

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.Я не знаю, почему это не работает здесь ...

Я не могу понять, что не так.Есть идеи?

1 Ответ

0 голосов
/ 20 декабря 2010

Вы уверены, что ваш PHP-код больше не выплевывает HTML? попробуйте добавить die

if($_POST['action'] == 'ajaxRequest'){
  addImage();
  die();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...