У меня есть следующая функция Javascript, прекрасно работающая на моем локальном сервере IIS. При переносе кода на другой сервер IIS (это Windows VPS) xmlhttp.status всегда возвращается как 404 (даже если файл, который он проверяет, есть).
function startInterval(result) {
//var fname = "http://localhost/excelfiles/Ad_Activity_1_145.csv";
var path = "http://<% =Request.Url.Host %>/excelfiles/";
var fname = path + a.substring(0,a.length-1) + "_Activity_" + c + '_' + result + '.csv';
var checkCounter = 0;
checkInterval = setInterval(function() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('HEAD', fname);
xmlhttp.onreadystatechange = handleHttpResponse_check;
xmlhttp.send(null);
function handleHttpResponse_check()
{
if(xmlhttp.readyState == 4){
if (xmlhttp.status == 200) {
//ctrl.innerHTML = '<a onclick="goToURL(\''+fname+'\');return false;">Open file!</a>';
ctrl.innerHTML = '<a onclick="goToURL(\''+fname+'\');return false;"><img src="images\\Excel_Icon.jpg" style="width:20px;height:20px;cursor:pointer;"/></a>';
clearInterval(checkInterval);
} else if (xmlhttp.status == 404) {
checkCounter += 1;
if(checkCounter >= 5){
clearInterval(checkInterval);
ctrl.innerHTML = 'ERROR: File not created';
}
}
}
}
}, 1000);
}
Я подозреваю, что XMLHttpRequest не работает на новом сервере. Переменная fname имеет правильный путь / имя файла. Функция handleHttpResponse_check выполняется правильно ... только то, что xmlhttp.status всегда возвращает 404 на новом сервере, несмотря на то, что файл находится по пути / имени файла. Локальный сервер прекрасно обнаруживает файл, и xmlhttp.status возвращает 200 на этом сервере. Есть идеи, что может происходить с новым сервером?