ОБСУЖДЕНИЕ

Аякс не получает ответ от с удаленного сервера.

1 ответов 6,2 тыс.
AI-выжимка обсуждения скоро

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

Статус
Закрыто для дальнейших ответов.
Автор темы
Всем привет!

Подскажите пожалуйста нубу как решить проблемы(

Делаю первый раз Ajax: взял исходники простейшего клиентского приложения, оттестил на локале - все хорошо(аякс отправляет данные -> php скрипт генерит ответ -> аякс выводит данные.).
Когда решил указать удаленный хост в качестве сервера для получения данных аяксом возникли проблемы:
1) FF не отказал в доступе :rolleyes: , и обратился к скрипту на удаленном сервере. Но радости мало(, т.к. ответа мой аякс не получил, хотя я точно знаю что php-скрипт на удаленном сервере выполнился(записал результат выполнения в файл). Почему такое может происходить? Если на локале все нормально с системой.
2) IE написал "отказанно в доступе" - политика блин безопасности), и как тогда быть в этом случае - если нужно?)

Ниже код клиента дан:

Код:
<html>
<head>
</head>

<body>

<script type="text/javascript" language="javascript">
// <![CDATA[

var http_request = false;

function makeRequest(url) {
http_request = false;

if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}

if (!http_request) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}

http_request.onreadystatechange = alertContents;
http_request.open('POST', url, true);
http_request.send('5');
}

function alertContents() {
if (http_request.readyState == 4) {	// COMPLETED
if (http_request.status == 200) {	// HTTP STATUS
alert(http_request.responseText);
} else {
alert('There was a problem with the request.');
}
}
}

// ]]>
</script>

<span
style="cursor: pointer; text-decoration: underline"
onclick="makeRequest('http://www.УДАЛЕННЫЙ_СЕРВЕР.ru/ajax.php')">

Make a request

</span>

</body>
</html>
 
AJAX POST напрямую нельзя посылать на удаленный сервер.

Используй iframe
или
ajax обращается к локальному скрипту, а тот лезет на удалённый сервер
 
Статус
Закрыто для дальнейших ответов.