Мы имеем 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>
Почему они терпят неудачу? –
Можете ли вы отправить пример одного из вызовов AJAX, который не работает? – nurdyguy
Добро пожаловать в переполнение стека. Просто для дальнейшего использования, помимо включения * небольшого * образца кода, который воспроизводит проблему, обязательно включайте любые сообщения об ошибках с начальным вопросом. Просто говорю, что «no ajax calls work» очень неоднозначно. Хотя вы в конечном итоге смогли выяснить проблему (kudos), в том числе такую информацию, как «этот вызов возвращает ошибку 404», является важной деталью, которую другие могут использовать, чтобы быстрее диагностировать проблему :) – Leigh