@lilandre

Почему работает один кросс-доменный запрос, а другой не работает?

Добрый день. Разбираюсь с Ajax на JavaScript. Изучаю тему кросс-доменные запросы. Почему на один сайт работает кросс-доменный запрос, а на другой- не работает ?

mefston19.clone.pp.ua/ajax -сайт где я тестю кросс-доменные запросы.

index.html
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Ajax CrosDomain</title>

	<script src="script.js" async></script>
	<link rel="stylesheet" href="script.css">
</head>
<body>


<div class="container">
	
	<div class="buttons">
		<button id="button">Запрос на Lenta.ru</button>
		<button id="button2">Запрос на www.html5rocks.com

	</button>


<div id="container"> </div>




<div id="container2"> </div>



	<p id="containerText">Demo</p>
	<p id="containerText2">Demo2</p>


</div>
	
</body>
</html>

script.js
var container = document.getElementById('container');
var container2 = document.getElementById('container2');
var button = document.getElementById('button');
var button2= document.getElementById('button2');

var containerText = document.getElementById('containerText');
var containerText2= document.getElementById('containerText2');


button.onclick=function(){
	requestL()
	container.innerHTML= 'Отправили  запрос на Lenta.ru';

}

button2.onclick=function(){
	// alert(' Script work!!');
	requestH();
	container2.innerHTML= 'Отправили запрос на html5rocks.com';

}





function requestL(){
	var XHR = ('onload' in new XMLHttpRequest())? XMLHttpRequest : XDomainRequest;

	var xhr = new XHR();

	xhr.open('GET','http://lenta.ru/robots.txt', true);

	xhr.send();


	xhr.onload = function (){
		alert(this.responseText);
		console.log('Answer : '+this.responseText)	
		containerText.innerHTML= ('Ответ:  '+this.responseText);	
	};
	xhr.onerror= function (){
		alert('Error code: '+this.status+'Text error: '+this.statusText);
		console.log('Error code :\n'+this.status+'\n Text error: '+this.statusText);
		containerText.innerHTML= ('Cross-Origin Resource Sharing does not work. Error code: '+this.status+'\n Text error: '+this.statusText);		
	};

}


function requestH(){
	var XHR = ('onload' in new XMLHttpRequest())? XMLHttpRequest : XDomainRequest;

	var xhr = new XHR();

	xhr.open('GET','http://html5rocks-cors.s3-website-us-east-1.amazonaws.com/index.html', true);

	xhr.send();


	xhr.onload = function (){
		alert(this.responseText);
		console.log('Answer : '+this.responseText);	
		containerText2.innerHTML=('Ответ:  '+this.responseText);		
	};
	xhr.onerror= function (){
		alert('Error code: '+this.status+'Text error: '+this.statusText);
		console.log('Error code: '+this.status+'Text error: '+this.statusText);	

	};

}
  • Вопрос задан
  • 127 просмотров
Решения вопроса 1
ikanyshev
@ikanyshev
Python developer
На lenta.ru запрещены ajax-запросы, поэтому увы и ах
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Atlllantis
Если сервер ваш, то смотрите заголовки на сервере: "Access-Control-Allow-Origin", если нет - то увы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы