加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 02:45:41 所属栏目:百科 来源:网络整理
导读:在编写API时,我遇到了一个非常棘手的错误:当我尝试使用Content-Type头应用程序/ json(大多数 AJAX的默认值)执行res.send(INSERT JSON)时,我得到一个无效的json错误.当我将内容类型设置为其他任何内容(例如text / plain)时,我得到正确的响应,但是为了使用一
在编写API时,我遇到了一个非常棘手的错误:当我尝试使用Content-Type头应用程序/ json(大多数 AJAX的默认值)执行res.send(INSERT JSON)时,我得到一个无效的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 Chrome扩展来测试我的API:

解决方法

我认为问题在于您希望在服务器响应中使用Content-Type标头;不在你的请求内容类型标题.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读