Ajax
У меня есть 2 сайта site1.ru и site2.ru. Могу ли я отправить с сайта 1 на сайт 2 ajax запрос?
Потому что когда я отправляю, то ответ не получаю.
-------------
ajax скрипт
var ajax=null;
function getAjax(){
if (window.ActiveXObject) // для IE
return new ActiveXObject("Microsoft.XMLHTTP");
else if (window.XMLHttpRequest)
return new XMLHttpRequest();
else {
alert("Browser does not support AJAX.");
return null;
}
}
function ajaxFunction(){
ajax=getAjax();
var param;
if (ajax != null) {
ajax.open("POST","http://site2/script.php",true);
param="in=text"; //что отправить
ajax.setRequestHeader("Content-type",
"application/x-www-form-urlencoded");
ajax.onreadystatechange = function(){
if(ajax.readyState==4 && ajax.status==200) {
alert(ajax.responseText);
} else {
alert("Ответ не был получен");
}
}
ajax.send(param);
}
}
ajaxFunction();

  • Данная передача назвается "междоменным запросом". Известны два путя решения:
    1)Использование прокси на стороне сервера
    2)Использование HTML-тегов с поддержкой междоменного взаимодействия, таких как и
  • Можешь - используя "проксирующий" скрипт на 1-м сайте.
    Работать он должен как-то так :
    - ловит передаваемый URL
    - ловит POST-данные (если нужно)
    - получает страницу с site2
    - (необязательно, но жлательно) кеширует страницу
    - отдаёт её.
    Если используется кеширование - в начале, конечно, стоит проверить нет ли нового закешированного варианта страницы, и при наличии - отдать его.