Проблема AJAX: XMLHttpRequest
Пытался решать с помощью XMLHttpRequest,
Код:
var xmlHttp;
function load_element(url){
xmlHttp = GetXmlHttpObject();
if (xmlHttp == null){
alert ('Browser does not support HTTP Request');
return true;
}
document.getElementById('Regional').innerHTML='<div style="width:auto;border: solid 1px #cccccc; background:#dedede; padding: 5px;"><b>Calculating and loading result...</b></div>';
xmlHttp.onreadystatechange = stateChanged;
xmlHttp.open("GET", url, true);
xmlHttp.send('null');
return false;
}
function stateChanged(){
alert('ok');
if (xmlHttp.readyState==4) {
if(xmlHttp.status==200) {
document.getElementById('Regional').innerHTML = xmlHttp.responseText;
} else {
document.getElementById('Regional').innerHTML='<div style="width:auto;border: solid 1px #cccccc; background:#dedede; padding: 5px;"><b>Error!</div>';
}
}
}
function GetXmlHttpObject(){
var objXMLHttp = null;
if (window.XMLHttpRequest){
//alert('No IE');
objXMLHttp=new XMLHttpRequest();
}else if (window.ActiveXObject){
//alert('IE');
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
return objXMLHttp;
function load_element(url){
xmlHttp = GetXmlHttpObject();
if (xmlHttp == null){
alert ('Browser does not support HTTP Request');
return true;
}
document.getElementById('Regional').innerHTML='<div style="width:auto;border: solid 1px #cccccc; background:#dedede; padding: 5px;"><b>Calculating and loading result...</b></div>';
xmlHttp.onreadystatechange = stateChanged;
xmlHttp.open("GET", url, true);
xmlHttp.send('null');
return false;
}
function stateChanged(){
alert('ok');
if (xmlHttp.readyState==4) {
if(xmlHttp.status==200) {
document.getElementById('Regional').innerHTML = xmlHttp.responseText;
} else {
document.getElementById('Regional').innerHTML='<div style="width:auto;border: solid 1px #cccccc; background:#dedede; padding: 5px;"><b>Error!</div>';
}
}
}
function GetXmlHttpObject(){
var objXMLHttp = null;
if (window.XMLHttpRequest){
//alert('No IE');
objXMLHttp=new XMLHttpRequest();
}else if (window.ActiveXObject){
//alert('IE');
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
return objXMLHttp;
Если передаю относительный URL (/location) под своим доменом - все отлично работает. Но надо подключить именно внешний скрипт - при этом он либо умирает на этапе обращения к обработчику события, либо пишет ошибку...
В чем может быть проблема? Есть ли более простые способы решения такой задачи?
Работает AJAX только в пределах своего домена
А другие способы решения проблемы есть (кроме AJAX и SSI)?
Дабы избежать проблем с системой безопасности - все вылазки за пределы домена надо делать на стороне сервера.
ЗЫ Не претендую на "истину последней инстанции" - эксперты форума меня поправят если я не прав
Код:
<?
echo file("http://host.com/file.php");
?>
echo file("http://host.com/file.php");
?>
если JS то просто указать
[html]
<script src="http://host.com/fil.js"></script>
[/html]
Все серверные скрипты написаны на Perl, видимо придется включать SSI.