XMLHttpRequest在新服务器上失败

时间:2018-09-05 04:25:24

标签: javascript iis xmlhttprequest onreadystatechange

我有以下Javascript函数可以在我的localhost 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。有什么想法可能会对新服务器产生什么影响?

1 个答案:

答案 0 :(得分:0)

404状态码表示服务器未找到与Request-URI匹配的任何内容。检查请求资源的路径,以确保生成的路径是预期的路径,并查看是否可以访问该资源。