21

我需要使用 Advanced REST Client 或 Postman for Chrome 测试接受 JSON 的 REST API 后端。

但我遇到了问题:我只能使用内置表单和 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 ,其中属性名称也在双引号内以使其正常工作。

4

1 回答 1

27

尝试用引号将字段属性括起来:{"title":"Awesome post!", "tags": ["blue", "jeans"] }

于 2012-07-27T13:33:01.833 回答