Я разбираю мой json на end
, но я все еще получаю эту ошибку.cors неожиданный конец ввода JSON
'use strict';
const http = require('http');
const tools = require('./tools.js');
const server = http.createServer(function(request, response) {
console.log("received " + request.method + " request from " + request.headers.referer)
var body = "";
request.on('error', function(err) {
console.log(err);
}).on('data', function(chunk) {
body += chunk;
}).on('end', function() {
console.log("body " + body);
var data = JSON.parse(body); // trying to parse the json
handleData(data);
});
tools.setHeaders(response);
response.write('message for me');
response.end();
});
server.listen(8569, "192.168.0.14");
console.log('Server running at 192.168.0.14 on port ' + 8569);
Данные, посылаемые от клиента:
var data = JSON.stringify({
operation: "shutdown",
timeout: 120
});
я успешно получить JSON, но я не могу разобрать его.
Update:
Я обновил код, чтобы включить код сервера в полном объеме.
Чтобы быть совершенно ясно, используя следующий код:
....
}).on('end', function() {
console.log("body " + body);
var json = JSON.parse(body); // trying to parse the json
handleData(json);
});
Я получаю это:
Однако это:
....
}).on('end', function() {
console.log("body " + body);
//var json = JSON.parse(body); // trying to parse the json
//handleData(json);
});
производит этот
'JSON.parse' принимает строку, которая должна быть действительный JSON. Ошибка, которую вы получаете, означает, что то, что вы анализируете, не является допустимым JSON. Когда я использую вашу стробированную переменную 'data' и передаю ее в' JSON.parse', все работает отлично. – nem035
Я пробовал пару вещей. Я обновил свой вопрос – Shaffanhoon
Попробуйте добавить 'console.log (body);' прямо перед вашим вызовом 'JSON.parse', чтобы убедиться, что' body' фактически имеет то, что вы ожидаете от него. – Paulpro