Coldfusion 11 Ajax调用不适用于生产服务器

时间:2015-07-30 18:25:50

标签: ajax production-environment coldfusion-11

我们有2个相同的服务器运行Windows,sql server和coldfusion 11标准

我们已经将网站迁移到其中一个服务器,但是当我们将网站复制到第二个服务器时,没有AJAX调用工作!其他一切工作正常,只需ajax调用。 2个coldfusion安装之间的唯一区别是,一个是开发服务器,另一个是配置为生产服务器。

为什么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>

2 个答案:

答案 0 :(得分:1)

感谢大家在这个问题上的时间。我们发现它是什么。当我们将开发版本迁移到生产站点时,我们没有创建指向必要dll的虚拟目录“jakarta”。一旦我们创建了这个虚拟目录,一切正常。我认为这是ColdFusion版本10的要求。请参阅ColdFusion 10, IIS 7.5 - Getting a 404 even though file exists

答案 1 :(得分:0)

登录CF管理员并转到Debugging & Logging > Debug Output Settings并确保已启用启用AJAX调试日志窗口选项。