Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Ajax: There was a problem accessing the server. SOS! (https://javascript.ru/forum/misc/11090-ajax-there-problem-accessing-server-sos.html)

dopelher 06.08.2010 07:28

Ajax: There was a problem accessing the server. SOS!
 
Всем доброго дня!
Если кто проконсультирует, буду очень благодарен,
т.к. сам уже все испробовал, мозг сплавился и не вижу где искать.
Проблема возникает при обращении к process():
"There was a problem accessing the server:" и больше ничего.

var xmlHttp = createXmlHttpRequestObject();
function createXmlHttpRequestObject()
{
  var xmlHttp;

  try
  {
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    var XmlHttpVersions = new Array(
      "MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", 
      "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP");

    for (i = 0; i < XmlHttpVersions.length && !xmlHttp; i++)
    {
      try
      {
        xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
      }
      catch (e) {} // Ignore potential error
    }
  }

  if (xmlHttp)
  {
    return xmlHttp;
  }

  else 
  {
    handleError("Error creating the XMLHttpRequest object.");
  }
}

function process()
{
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
  {
    xmlHttp.open("GET", "c:/projectX/quickstart.php", true);  
    xmlHttp.onreadystatechange = handleServerResponse;
    xmlHttp.send(null);
  }
 
    
    
}
function handleServerResponse() 
{
  if (xmlHttp.readyState == 4) 
  {
    if (xmlHttp.status == 200) 
    {
      Response = xmlHttp.responseText;
      document.getElementById("divMessage").innerHTML = Response;
    } 
	
    else 
    {
      alert("There was a problem accessing the server: " + xmlHttp.statusText);
    }

	 }
}

Kolyaj 06.08.2010 08:29

Цитата:

Сообщение от dopelher
if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)

Это условие в process не нужно.

Цитата:

Сообщение от dopelher
Проблема возникает при обращении к process():

Значит сервер возвращает не 200-й код.

dopelher 06.08.2010 09:12

Большое спасибо за ответ.
Вот именно, возвращает xmlHttp.status не 200, а 0,
не могу понять почему
:(

Kolyaj 06.08.2010 09:16

Так вы же к файловой системе обращаетесь. Откуда там код ответа? Нужно к серверу обращаться.

dopelher 06.08.2010 10:01

Извиняюсь за глупый вопрос, а как обратиться к серверу?
Попробовал еще вот так
function process()
{
$.ajax({
type: "GET",
url: "c:/ProjectX/quickstart.php",
success: callback,
error: err});
}

function callback(data, status)
{
$("#divMessage").text(data);
}
function err(xhr, reason, ex)
{
$("#divMessage").text(reason);
}
но ничего не получается

Kolyaj 06.08.2010 10:14

Нужно поставить локальный сервер, и загружать страницы с него, а не с диска.

dopelher 06.08.2010 10:30

Огромное спасибо! Сколько я времени на это убил!
исправил url на "../quickstart.php?name=" и все получилось!
:thanks:


Часовой пояс GMT +3, время: 12:52.