gpt4 book ai didi

ajax - 无效的 JSON GET 请求 Express.js

转载 作者:搜寻专家 更新时间:2023-10-31 23:13:50 25 4
gpt4 key购买 nike

在编写 API 时,我遇到了一个非常棘手的错误:当我尝试使用 Content-Type header application/json< 执行 res.send(INSERT JSON)(大多数 AJAX 的默认值),我收到一个 invalid json 错误。当我将内容类型设置为任何其他内容时(例如 text/plain),我得到了正确的响应,但是为了使用一些前端框架,我需要支持 application/json。这是实际的错误消息:

Error: invalid json
at Object.exports.error (/Users/Brad/node_modules/express/node_modules/connect/lib/utils.js:44:13)
at IncomingMessage.module.exports (/Users/Brad/node_modules/express/node_modules/connect/lib/middleware/json.js:68:73)
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:1680:22)
at TCP.onread (net.js:410:27)

我的服务器代码如下:

app.configure(function () {
app.use(express.bodyParser());
app.use(express.cookieParser('SALT'));
app.use(express.static(__dirname + '/static/'));
app.use(express.session());
});

app.get('/users', function(req, res) {
res.send({'test': 'test'});
});

这是我的 Postman 设置的图片——我正在使用 Postman Chrome 扩展来测试我的 API: enter image description here

最佳答案

我认为问题在于您希望在服务器响应中使用 Content-Type header ;不在您的请求 Content-Type header 中。

当您在请求中使用 Content-Type header 时,Express 将读取 Content-Type 并尝试将提供的信息解释为该 Content-Type,在本例中为 JSON。因为这是一个 GET 请求,因此没有正文,Express 试图将一个空字符串解释为 JSON,这给了你错误。

关于ajax - 无效的 JSON GET 请求 Express.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16879598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com