Не могу послать локальный запрос из моего js файла в node js оба на моем компе , вот как я это делаю вот node js
var http=require('http');
var model={name:"aaaavava"}
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end(JSON.stringify(model));
}).listen(8081);
// Console will print the message
console.log('Server running at http://127.0.0.1:8081/');
а вот как на него посылаю запрос
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<button onclick="loadPhones()" id="button">Загрузить json!</button>
<script>
function loadPhones() {
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://127.0.0.1:8081/', true);
xhr.send();
xhr.onreadystatechange = function() {
if (xhr.readyState != 4) return;
button.innerHTML = 'Готово!';
if (xhr.status != 200) {
alert(xhr.status + ': ' + xhr.statusText);
} else {
alert(xhr.responseText);
document.write(xhr.responseText);
console.log(JSON.parse(xhr.responseText));
}
}
button.innerHTML = 'Загружаю...';
button.disabled = true;
}
</script>
</body>
</html>
получаю такую ошибку
Failed to load http://127.0.0.1:8081/: The 'Access-Control-Allow-Origin' header has a value 'http://localhost:8888' that is not equal to the supplied origin. Origin 'null' is therefore not allowed access.
хотя через браузер работает nodejs файл
Подозреваю что вы при заходе на свою локальную страницу набираете http://localhost:8888 , однако хотите чтоб сервер на адресе 127.0.0.1 корректно принимал ваши аякс запросы.
Строго говоря localhost и 127.0.0.1 как доменное имя - не одно и то же.
Тут либо заходите на 127.0.0.1 либо запускайте оба сервера на localhost.
Можете забуриться в эту тему прочитав вот этот документ.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости