我有一个MEAN-stack后端,我想回复
return res.status(400).jsonp({ message: 'Parsing Failed.',code: '123' });
当角度应用程序使用此JSONP端点并遇到此特定错误时,它会收到400但没有其有效负载.当我将状态更改为200/300时,它会很好,而400/500却没有.
在其他路由(POST)上,我可以使用4 **状态代码和有效负载进行响应而不会出现任何问题.
return res.status(400).send({ message: 'Codes do not match.',code: '234' });
什么想法我忽略了什么?
解决方法
看起来这是一个浏览器:当请求远程脚本时(如JSONP请求的情况),并且响应返回400(或更高)HTTP状态,任何仍可在响应正文中返回的代码没有评估(这实际上是完全合理的).
Angular只会知道响应已经发送,并且它有错误状态,但由于没有调用回调,因此没有有效负载数据传递给回调.
<script> function foo(data) { alert('foo') } </script> <script src="/endpoint?callback=foo"></script>
以下Express处理程序:
app.get('/endpoint',(req,res) => { return res.status(400).jsonp({ hello : 'world' }); });
400状态不会触发警报,200状态会触发警报.如果处理程序返回纯JS(它就像一个加载了< script src = ...>的简单.js文件),它也不起作用.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。