nodejs request module里的json参数的一个坑

今天工做的时候遇到一个坑,在客户端用nodejs给服务器发送HTTP请求,服务器总是报错:In the context of Data Services an unknown internal server error occurrednode

通过服务器端调试发现,服务器根本就没有正确解析出这个请求的content-type。在postman里能工做的场景下,正确解析出的content-type是multipart/mixed:json

而个人nodejs代码里明明指定了这个content-type的啊?浏览器

通过一行行代码分析,最后发现问题出在第63行的json字段的值。我错误的赋成了true。服务器

这个参数起什么做用?调试一下就知道了。若是为true,进入第403行。app

若是请求内部有entity的content-type不是application/x-www-form-urlencoded, 则进入第1293行。post

safeStringify的实现逻辑就是浏览器原生的JSON.stringify, 把应用程序传入的json对象序列化成字符串。可是个人代码里,传入request module的请求体是一个字符串,而json参数设的又是true,因此逻辑上就不对了。把这个json参数的值改成false后,一切正常。url

要获取更多Jerry的原创文章,请关注公众号"汪子熙":
spa

相关文章
相关标签/搜索