2009-10-21 3 views
0

EDIT: Я обнаружил, что это ошибка 405. Итак, что-то происходит с веб-сервером и обрабатывает методы POST.

У меня странное явление. У меня одинаковый код javascript как на моей тестовой среде, так и на рабочей среде.

Функциональность тестовой среды, и ее нет. Вот мой идентичный код.

<html> 
    <head> 
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
     <script type="text/javascript" src="http://cdn.jquerytools.org/1.1.2/jquery.tools.min.js"></script> 
     <script type="text/javascript" src="./js/jquery.scrollTo-min.js"></script> 
    </head> 
    <body> 
     <div class="content" id="content"> 
     <a id="changeText" href="test.html">Change</a> 
     </div> 

     <script> 
     $(document).ready(function() { 

      $("#changeText").live('click', function(){ 

       var url = $(this).attr("href"); 

       $("#content").load(url, {var1:Math.random()*99999},function(){ 

        alert(url + " loaded"); 
       }); 

       $.scrollTo("0%", 400); 

       return false; 
      }); 
     }); 
    </script> 
    </body> 
</html> 

Обе среды сообщают, что

alert(url + " loaded"); 

происходит. Но только моя тестовая среда фактически отображает изменение.

У производственного веб-сервера есть «test.html», доступный в правильном месте.

+1

Вы пробовали отслеживать конвейер запроса с помощью Firebug или проверять журналы запросов на сервере, чтобы узнать, действительно ли отправлен запрос, и если да, то каков ответ сервера? –

+0

Я довольно новичок в jQuery, и пытаясь выяснить, как расшифровать информацию в Firebug, мне нелегко. Что именно я ищу в этом множестве переменных? – Tylo

+0

Поскольку вы упомянули «отображает изменение», то, кроме того, ошибка 405, возможно, в игре также есть проблема с кешированием. Это может быть что-то, о чем следует помнить при отладке. –

ответ

0

Вы уверены, что скрипт scrollTo включен на производственный сервер (или я неправильно истолковываю то, что вы подразумеваете под change)? Возможно, попробуйте корневой относительный путь вместо «./js»? Я бы проверил вкладку скрипта Firebug, чтобы убедиться, что он включен.

+0

Я уверен, потому что работает scrollTo. Единственный бит, который не работает, - это изменение содержимого div из-за вызова AJAX. – Tylo

+0

Что возвращает вызов ajax? –

+0

Я не уверен, как поймать то, что он возвращает. Я просто установил его равным переменной и затем распечатал это на моей консоли? – Tylo

0

405 ошибок означает, что URL-адрес, который вы отправляете, не ожидает, что вы будете отправлять данные таким образом. Например, если вы отправляете POST-запрос на URL-адрес, который предназначен только для обработки запроса GET, вы получите эту ошибку.

Я предполагаю, что любой сервер, на котором вы работаете, настроен так, чтобы не отправлять данные POST на страницу с расширением .html, вызывая ошибку, которую вы видите. Попробуйте изменить расширение на .php, .aspx и т. Д. И посмотрите, поможет ли это.