2016-08-10 5 views
0

Я бег сервера на Node.js и Экспресс v4.0запроса библиотека JS Неожиданного конца ввода JSON

И я с помощью запроса library неперехваченного SyntaxError: Неожиданный конец ввода JSON затем recving ответа от сервера я я получаю ответ, но без последнего символа ("}"), поэтому, когда я пытаюсь разобрать JSON, он выдает ошибку. Проблема заключается в том, что если я сделать такой же запрос с XMLHttpRequest от Chrome работает с ТЕМ ЖЕ HEADERS И ОДНОГО ТЕЛА

запрос parametrs:

request({ 
        method:"POST", 
        jar:true, 
        url:host+"/api/location", 
        form:{ 
         longitude:elem.longitude, 
         latitude:elem.latitude 
        }, 
        followAllRedirects:true 
       },(err,res,body)=>{ 
        logger.log(body); 
        body = JSON.parse(body); 
        assert(!body.success); 
        assert(body.longitude != elem.longitude && body.latitude != elem.latitude); 
        done(); 
       }); 

ответ пришедшего обратно неправильный код экспресс:

res.send(JSON.stringify(({ 
    error:"Unknown", 
    errorCode:errorCode, 
    success:false, 
    "-_-":"_-_" 
}))); 

Последние поля были попыткой отправить другое поле, а проверка - другое поле искажено или нет. и он не был искажен, но последний символ не был выпущен.

Также я попытался использовать res.json() с таким же телом, но не с успехом. такой же результат.

Что я могу сделать? в любом случае найти, где проблема?

ответ

0

Вам не нужно выделять JSON и анализировать результат. Вы должны просто отправить JSON в качестве ответа, а «тело» в обратном вызове запроса должно содержать JSON из ответа.

0

Я установил его.

На стороне сервера была ошибка, которая не была видима по некоторым причинам.

res.json(). Конец() использовался 2 раз. Так что тело уже было отправлено, и я пытался добавить что-то еще. Это странное поведение

Смежные вопросы