Мне нужно протестировать мой сервер REST API, который принимает JSON с помощью Advanced REST Client или Postman для Chrome.
Но я сталкиваюсь с проблемами: я могу отправлять запрос только с помощью встроенной формы и использовать Content-Type: application/x-www-form-urlencoded
Но это не сработает, так как у меня есть встроенные документы, например, Мне нужно ПОЧТОВАТЬ этот:
{title:"Awesome post!", tags: ["blue", "jeans"] }
Это невозможно при использовании встроенных форм расширения Chrome.
Когда я выбираю Raw Body и вставляю туда контент, мой бэкэнд видит req.body как пустой объект. Когда я также устанавливаю заголовок "Content-Type: application/json", я получаю следующую ошибку в моем бэкэнд:
SyntaxError: Unexpected token n
at Object.parse (native)
at IncomingMessage.exports.parse.application/json (/Library/WebServer/Documents/slipfeed/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js:135:16)
at IncomingMessage.EventEmitter.emit (events.js:85:17)
at IncomingMessage._emitEnd (http.js:366:10)
at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)
at Socket.socket.ondata (http.js:1682:22)
at TCP.onread (net.js:404:27)
Примечание. Я использую функции bodyParser() и methodOverride() в настройках моего приложения. Отключение их не помогло.
Какие настройки следует использовать, чтобы я мог просто ввести поле JSON в поле Raw body, и запрос будет работать?
Чтобы пояснить ответ: мне пришлось установить Content-Type: application/json (в заголовке запроса) и использовать правильно сформированный json, где имена свойств также находятся внутри двойных кавычек, чтобы заставить его работать.