Как осуществить обработку данных на сервере node.js ?

Есть скрипт на странице пользователя, который в конечном итоге создает массив.
$(document).ready(function (){
	var data = [];
	$('#readyButton').click(function() {
		data[0] = $('#input_one').val();
		data[1] = $('#input_two').val();
	});
});

И есть сервер, который должен этот запрос обработать
var express = require('express');
var app = express.createServer(); 
app.use(express.bodyParser()); 
app.post('/', function(req, res){
	var obj = {};
	console.log('body: ' + JSON.stringify(req.body));
	res.send(req.body);
});  
app.listen(3000);


Подскажите, пожалуйста, как отправить данные на сервер и полученный результат вернуть на страницу?

Пробовал отправлять через AJAX.
$.ajax({
		type: 'POST',
		data: JSON.stringify(data),
		contentType: 'application/json',
                 url: 'http://blablabla.ru:3000/',						
                  success: function(data) {
                  console.log('success');
                  console.log(JSON.stringify(data));
         }

Получаю следующие ошибки:
1) No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'blablabla.ru' is therefore not allowed access.
2) XMLHttpRequest cannot load
  • Вопрос задан
  • 5039 просмотров
Пригласить эксперта
Ответы на вопрос 2
Assargin
@Assargin
Перед ответом смотрю наличие ✔ в ваших вопросах
Такую ошибку (1) я видел только в одном случае - когда делается кроссдоменный аякс-запрос, не проходящий через same-origin policy, без соответствующей настройки.
Ошибка (2) просто логичное следствие (1)

Посмотрите вот это, и в целом гугл по запросу "crossdomain ajax".
Ответ написан
Комментировать
@karisters
Как сказали выше, это кросс-доменный запрос, который требует выполнения нескольких требований.
Первое - сервер должен отвечать определенным образом на запросы типа OPTIONS. Для этого, после строки
var app = express.createServer();
нужно добавить следующее:
app.use(function (req, res, next) {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'GET, OPTIONS');
    res.header('Access-Control-Allow-Headers', 'Origin, Content-type, Accept, Authorization');
    res.header('Access-Control-Allow-Credentials', 'true');
    next();
});

Второе - на стороне клиента нужно выполнять запрос типа JSONP, о котором нужно прочитать здесь
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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