Передача данных с
Всем привет.
Заранее прошу прощения, если мой вопрос слишком глупый. Это мой первый опыт с Node JS, в интернетах ответа мне не удалось найти :( У меня достаточно простая задача: есть сервис на node.js, который должен по запросу передавать данные клиенту (html с java-script) в формате json. Задача достаточно типовая, но никак не получается ее реализовать :help: HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script>
function log(msg){myDIV.innerHTML += msg+"<br/>";}
function start(){
var dataSource = 'http://127.0.0.1:8080/';
var xhr = new XMLHttpRequest();
xhr.open('POST', dataSource, true);
xhr.send();
xhr.onreadystatechange = function() {
if (xhr.readyState != 4) return;
if (xhr.status != 200) {
log('Ошибка '+xhr.status + ': ' + xhr.statusText);
} else {
log(xhr.responseText);
}
}
}
</script>
</head>
<body>
<button onclick="start()">Старт</button>
<div id="myDIV"></div>
</body>
</html>
Node JS:
var http = require('http');
var server = new http.Server();
server.listen(8080, '127.0.0.1');
server.on('request', function(req, res) {
var json = {
name:"my JSON Object",
value:"kuku!"
};
console.log('%s request submited', (new Date()).toISOString());
res.writeHead(200, {"Content-Type": "application/json"});
res.end(JSON.stringify(json));
});
Если со страницы клиента клацать кнопку "Старт" - в консоли ноды появляется сообщение о поступившем запросе. Но клиент так и не получает данные - в соответствующий ДИВ записывается "Ошибка 0: ". Браузер по адресу http://127.0.0.1:8080/ показывает строку с валидным JSON Файрвол и антивирус отключил... Помогите разобраться, что и где я упустил, плиз. |
В браузере возникает ошибка: XMLHttpRequest cannot load http://127.0.0.1:8080/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
Значит необходимо, чтобы в ответе от сервера на этот запрос был заголовок Access-Control-Allow-Origin: *
var server = new (require('http').Server)();
server.listen(8080, '127.0.0.1');
server.on('request', function(req, res) {
if(req.url == "/") {
var json = {
name:"my JSON Object",
value:"kuku!"
};
console.log('%s request submited', (new Date()).toISOString());
res.writeHead(200, {
"Content-Type": "application/json",
"Access-Control-Allow-Origin": "*"
});
res.write(JSON.stringify(json));
}
res.end();
});
|
| Часовой пояс GMT +3, время: 12:21. |