Coldfusion 11 Ajax 调用在生产服务器上不工作
Coldfusion 11 Ajax calls not working on production server
我们有 2 个相同的服务器 运行 windows、sql 服务器和 coldfusion 11 标准
我们已将网站迁移到其中一台服务器,但是当我们将网站复制到第二台服务器时,AJAX 调用无法正常工作!其他一切正常,只有 ajax 调用。两个 coldfusion 安装之间的唯一区别是一个是开发服务器,另一个已配置为生产服务器。
为什么 ajax 调用在生产服务器上不起作用?
示例 - 如前所述,两台服务器具有完全相同的网站文件和完全相同的数据库。开发站点可以运行,但生产服务器上没有 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>
登录到 CF Administrator 并转到 Debugging & Logging > Debug Output Settings
并确保您已启用 Enable AJAX Debug Log Window 选项。
感谢大家花时间解决这个问题。我们发现了它是什么。当我们将开发版本迁移到生产站点时,我们没有创建指向必要 dll 的虚拟目录 "jakarta"。一旦我们创建了这个虚拟目录,一切就都正常了。我认为这是 ColdFusion 版本 10 的要求。请参阅 ColdFusion 10, IIS 7.5 - Getting a 404 even though file exists。
我们有 2 个相同的服务器 运行 windows、sql 服务器和 coldfusion 11 标准
我们已将网站迁移到其中一台服务器,但是当我们将网站复制到第二台服务器时,AJAX 调用无法正常工作!其他一切正常,只有 ajax 调用。两个 coldfusion 安装之间的唯一区别是一个是开发服务器,另一个已配置为生产服务器。
为什么 ajax 调用在生产服务器上不起作用?
示例 - 如前所述,两台服务器具有完全相同的网站文件和完全相同的数据库。开发站点可以运行,但生产服务器上没有 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>
登录到 CF Administrator 并转到 Debugging & Logging > Debug Output Settings
并确保您已启用 Enable AJAX Debug Log Window 选项。
感谢大家花时间解决这个问题。我们发现了它是什么。当我们将开发版本迁移到生产站点时,我们没有创建指向必要 dll 的虚拟目录 "jakarta"。一旦我们创建了这个虚拟目录,一切就都正常了。我认为这是 ColdFusion 版本 10 的要求。请参阅 ColdFusion 10, IIS 7.5 - Getting a 404 even though file exists。