-
Describe the problem(描述问题)接口返回的若是204状态码,HttpClient访问时会报错 : 这里说的是@midwayjs/core里的HttpClient 状态码204 表示成功完成并且不需要有返回内容,是一个标准Http状态码。 是否可以支持一下。 Midway Versions(Midway 版本)"@midwayjs/core": "^3.15.0", |
Beta Was this translation helpful? Give feedback.
Replies: 7 comments 14 replies
-
不传 dataType 就行了 |
Beta Was this translation helpful? Give feedback.
-
唯一区别就是接口不是声明为"@httpcode(204)"的,而是在中间件Middleware里整体判断并设置的,ctx.status=204。
只有204会在访问时报错"[httpclient] Unable to parse response data",其它像 200/400/401/403/404等情况都可以正常访问并得到返回状态码。 |
Beta Was this translation helpful? Give feedback.
-
这样呢? return ctx.status === 204 ? '' : result; |
Beta Was this translation helpful? Give feedback.
-
是不是某个中间件修改了响应 header/body |
Beta Was this translation helpful? Give feedback.
-
事情解决了! 仍奇怪的是demo程序中dataType不赋值是正常的,前面waitingsong的测试用例也正常。
|
Beta Was this translation helpful? Give feedback.
-
问题解决办法: 还有,期待HttpClient稍做完善,避免使用Object.assign导致的defaultOptions属性增加,毕竟重复使用httpClient对象的情况是有可能的。 |
Beta Was this translation helpful? Give feedback.
问题解决办法:
1)访问204接口时,dataType不要传json
2)避免重复使用HttpClient对象,每次访问都应新建一个。
感谢帮助!
还有,期待HttpClient稍做完善,避免使用Object.assign导致的defaultOptions属性增加,毕竟重复使用httpClient对象的情况是有可能的。