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,这会给你错误. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |