2015-07-30 3 views
-1

Мы имеем 2 идентичных серверов под управлением Windows, SQL Server и ColdFusion 11 стандартColdfusion 11 Ajax вызовов не работает на сервере производства

Мы мигрировали сайт к одному из серверов, но когда мы копируем сайт на второй сервер нет вызовов AJAX! Все остальное работает нормально только для вызовов ajax. Единственная разница между двумя установками с холодным потоком заключается в том, что один из них является развитым сервером, а другой настроен как производственный сервер.

Почему вызов ajax не работает на производственном сервере?

ПРИМЕР. Как уже упоминалось, 2 сервера имеют одинаковые файлы веб-сайта и одну и ту же базу данных. Сайт разработки работает, но никакие вызовы ajax не работают на рабочем сервере.

<script type="text/javascript"> 
      $(function(){    
       var Location = $("#Location"), 
       Other = $("#Other"), 
       ContactNo = $("#ContactNo"), 
       allFields = $([]).add(Location).add(Other).add(ContactNo); 

      var txtLocation = $('#Location').val(); 
      var txtOther = $('#Other').val();    
      if(txtLocation == 'Other' || txtLocation == 'Client site'){ 
       $('#Other').show(); 
      } 
      else{ 
       $('#Other').hide(); 
      } 

      $('#Location').change(function() { 
       var selected = $(this).val(); 
       if(selected == 'Other' || selected == 'Client site'){ 
        $('#Other').show(); 
       } 
       else{ 
        $('#Other').hide(); 
       } 
      }); 

      $('#dialog-MyStatus').dialog({ 
       autoOpen: false, 
       width: 400, 
       modal: true, 
       resizable: false, 
       buttons: { 
        "Update my status": function() { 
         var bValid = true; 
         allFields.removeClass("ui-state-error");  
         bValid = bValid && checkLength(Location, "ContactNo", 2, 50); 
         if ($('#Location').val() == 'Other' || $('#Location').val() == 'Client site'){ 
          bValid = bValid && checkLength(Other, "Other", 3, 50); 
         } 

         if (bValid) { 
          //organize the data properly 
          var data = 'method=SetStatus&Location=' + Location.val() + '&Other=' + Other.val() + '&ContactNo=' + 
          ContactNo.val();      
          //start the ajax 
          $.ajax({ 
           url: "/templates/cfc/mystatus.cfc", 
           type: "POST", 
           data: data, 
           cache: false, 
           success: function (html) {   
            //hide the form 
            $('#MyStatus').fadeOut('slow'); 
            var txtLocation = $('#Location option:selected').text(); 
            var txtOther = $('#Other').val(); 
            var txtContactNo = $('#ContactNo').val();          
            $('#MyLocation').text(txtLocation); 
            if (txtLocation != 'Other' && txtLocation != 'Client site'){ 
             $('#MyLocationOther').text(''); 
             $('#MyRemLocation').text(txtLocation); 
            } 
            else { 
             $('#MyLocationOther').text(txtOther); 
             $('#MyRemLocation').text(txtOther); 
            } 
            $('#MyRemContactNo').text(txtContactNo);            
            $('#MyContactNo').text(txtContactNo);           
            $('#StatusMessage').text(''); 
            location.reload();          
            $('#dialog-MyStatus').dialog("close"); 
           } 
          }); 
         } 
         //cancel the submit button default behaviours 
         return false; 
        }//, 
        //Cancel: function() { 
        // $(this).dialog("close"); 
        //} 
       }, 
       close: function() { 
        allFields.val("").removeClass("ui-state-error"); 
       }      
      });     
     }); 
     function MyStatusSet(){ 
      $('#MyStatus').fadeIn('slow'); 
      var txtCurrentLocation = $('#MyLocation').text(); 
      var txtCurrentLocationOther = $('#MyLocationOther').text(); 
      var txtCurrentContactNo = $('#MyContactNo').text(); 
      $("#Location option[value='"+txtCurrentLocation+"']").attr('selected', 'selected'); 
      $('#Other').val(txtCurrentLocationOther); 
      $('#ContactNo').val(txtCurrentContactNo); 
      $('#dialog-MyStatus').dialog('open'); 
      return false; 
     }; 
     </script> 
+0

Почему они терпят неудачу? –

+0

Можете ли вы отправить пример одного из вызовов AJAX, который не работает? – nurdyguy

+0

Добро пожаловать в переполнение стека. Просто для дальнейшего использования, помимо включения * небольшого * образца кода, который воспроизводит проблему, обязательно включайте любые сообщения об ошибках с начальным вопросом. Просто говорю, что «no ajax calls work» очень неоднозначно. Хотя вы в конечном итоге смогли выяснить проблему (kudos), в том числе такую ​​информацию, как «этот вызов возвращает ошибку 404», является важной деталью, которую другие могут использовать, чтобы быстрее диагностировать проблему :) – Leigh

ответ

0

Вход в CF Administrator и перейти к Debugging & Logging > Debug Output Settings и убедитесь, что вы включили Включить AJAX Debug Log Window вариант.

+0

Это для CF ajax-элементов управления, которые OP не используется. – Leigh

1

Благодарим вас за ваше время с этой проблемой. Мы выяснили, что это было. Когда мы перенесли версию разработки на производственный сайт, мы не создали виртуальный каталог «jakarta», который указывает на необходимые DLL. Когда мы создали этот виртуальный каталог, все работало нормально. Я думаю, что это требование от ColdFusion версии 10. См. ColdFusion 10, IIS 7.5 - Getting a 404 even though file exists.

 Смежные вопросы

  • Нет связанных вопросов^_^