Тема: AJAX и PHP
Показать сообщение отдельно
  #1 (permalink)  
Старый 17.07.2008, 12:05
Новичок на форуме
Отправить личное сообщение для .mask Посмотреть профиль Найти все сообщения от .mask
 
Регистрация: 17.07.2008
Сообщений: 6

AJAX и PHP
Ребята, помогите..
Передомной стоит следующая задача:

Написать JS который обращается к *.php c GET параметрами и результат работы скрипта помещается

в <div /> на клиентской странице.

Написал следующее:

[Клиент]
<script type="text/javascript" src="http://***/my.js"></script>
<div id="myDiv" />



[my.js]
// holds an instance of XMLHttpRequest
var xmlHttp = createXmlHttpRequestObject();

// creates an XMLHttpRequest instance
function createXmlHttpRequestObject() 
{
  // will store the reference to the XMLHttpRequest object
  var xmlHttp;
  // this should work for all browsers except IE6 and older
  try
  {
    // try to create XMLHttpRequest object
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    // assume IE6 or older
    var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
                                    "MSXML2.XMLHTTP.5.0",
                                    "MSXML2.XMLHTTP.4.0",
                                    "MSXML2.XMLHTTP.3.0",
                                    "MSXML2.XMLHTTP",
                                    "Microsoft.XMLHTTP");
    // try every prog id until one works
    for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) 
    {
      try 
      { 
        // try to create XMLHttpRequest object
        xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
      } 
      catch (e) {}
    }
  }
  // return the created object or display an error message
  if (!xmlHttp)
    alert("Error creating the XMLHttpRequest object.");
  else 
    return xmlHttp;
}


// called to read a file from the server

  // only continue if xmlHttp isn't void
  if (xmlHttp)
  {
    // try to connect to the server
    try
    {
      // initiate reading the my.php file from the server
      xmlHttp.open("GET", "http://***/my.php", true);
      xmlHttp.onreadystatechange = handleRequestStateChange;
      xmlHttp.send(null);
    }
    // display the error in case of failure
    catch (e)
 
    {
      alert("Can't connect to server:\n" + e.toString());
    }
  }

// function that handles the HTTP response
function handleRequestStateChange() 
{
  // obtain a reference to the <div> element on the page
  myDiv = document.getElementById(myDiv);
  // display the status of the request 
  if (xmlHttp.readyState == 1)
  {
    myDiv.innerHTML += "Request status: 1 (loading) <br/>";
  }
  else if (xmlHttp.readyState == 2)
  {
    myDiv.innerHTML += "Request status: 2 (loaded) <br/>";
  }
  else if (xmlHttp.readyState == 3)
  {
    myDiv.innerHTML += "Request status: 3 (interactive) <br/>";
  }
  // when readyState is 4, we also read the server response
  else if (xmlHttp.readyState == 4) 
  {
    // continue only if HTTP status is "OK"
    if (xmlHttp.status == 200) 
    {
      try
      {
        // read the message from the server
        response = xmlHttp.responseText;
        // display the message 
        myDiv.innerHTML += 
                      "Request status: 4 (complete). Server said: <br/>";
        myDiv.innerHTML += response;
      }
      catch(e)
      {
        // display error message
        alert("Error reading the response: " + e.toString());
      }
    } 
    else
    {
      // display status message
      alert("There was a problem retrieving the data:\n" + 
            xmlHttp.statusText);
    }
  }
}



[my.php]
<hr />
<?php echo "HELLO!" ?>
<hr />



Получается следующее:
Если клиентская страница на том же сервере, что и my.php (к которому обращается my.js) то все

нормально работает, а вот если клиентская страница на другом сервере, то, например Opera

конкретно отказывается все это дело проворачивать из за соображения безопасности.

Как же мне реализовать поставленную задачу?
Помогите плз...

Заранее спасибо
Ответить с цитированием