Yaly
@Yaly
Святой

ОШИБКА ...from origin 'null' has been blocked by CORS policy: ... Как решить?

3 день пытаюсь разобраться с AJAX консоль выдаёт
Access to XMLHttpRequest at 'file:///C:/OpenServer/OSPanel/domains/testo.com/ip.php' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
ajaxGet @ script.js:9
document.querySelector.onclick @ script.js:3

файл index.html
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>ТЕСТО</title>
</head>
<body>
	<input type="button" id="shop_ip" value="Show my IP">
	<div id="myip"></div>
	<script src="script.js"></script>
</body>
</html>


файл script.js
window.onload = function() {
	document.querySelector('#shop_ip').onclick = function() {
		ajaxGet();
	}
}
function ajaxGet(){
	var request = new XMLHttpRequest();
    request.open('GET', 'ip.php');
    request.send();
}


файл ip.php
<?php
echo $_SERVER('REMOTE_ADDR');
?>
  • Вопрос задан
  • 65377 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Запустить какой-нибудь сервер, и слать запросы через него, т.к. ajax'у запрещено получать файлы напрямую.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
vman
@vman
ip.php исправить на

<?php
header('Access-Control-Allow-Origin: *');
echo $_SERVER['REMOTE_ADDR'];

перейти в директорию с index.html и запустить в консоли

php -S 127.0.0.1:8080

в браузере набрать 127.0.0.1:8080
Ответ написан
Комментировать
@djay
request.open('GET', 'ip.php');

Исправить на

request.open('GET', '/ip.php');
Ответ написан
@LLlyM
Да сколько можно предлагать веб-серверы. Везде одно и то же отвечают - запустить сайт через сервер. Это ведь и так очевидно. А при компиляции например на андроид как избавиться от CORS-ошибок, если я банально не могу подгрузить через $.load() другой html-файл (other.html), который находится в этой же локальной системе, в одной папочке. Тоже сервер установить в приложении при компиляции? Вечность уже е*усь с этим корсом грёбаным!
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы