我们有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>
答案 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调试日志窗口选项。