Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.06.2015, 13:05
Новичок на форуме
Отправить личное сообщение для andryxx Посмотреть профиль Найти все сообщения от andryxx
 
Регистрация: 15.06.2015
Сообщений: 5

Передача данных с
Всем привет.
Заранее прошу прощения, если мой вопрос слишком глупый. Это мой первый опыт с Node JS, в интернетах ответа мне не удалось найти

У меня достаточно простая задача: есть сервис на node.js, который должен по запросу передавать данные клиенту (html с java-script) в формате json. Задача достаточно типовая, но никак не получается ее реализовать

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
Файрвол и антивирус отключил...

Помогите разобраться, что и где я упустил, плиз.
Ответить с цитированием
  #2 (permalink)  
Старый 28.06.2015, 19:57
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

В браузере возникает ошибка: 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();
});
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ajax передача большого количества данных diakon AJAX и COMET 3 29.05.2015 13:23
AJAX, Только передача данных. NewJSUser AJAX и COMET 14 12.01.2015 17:38
ajax передача данных с setInterval Segol Общие вопросы Javascript 0 07.07.2013 09:36
Двойная Фильтрация данных таблицы David0707 Общие вопросы Javascript 0 19.03.2012 13:00
передача данных между формами Yurii Общие вопросы Javascript 2 30.04.2008 20:52