【发布时间】:2016-10-02 04:47:34
【问题描述】:
我有一个 MEAN-stack 后端,我想用
来响应return res.status(400).jsonp({
message: 'Parsing failed.',
code: '123'
});
当 Angular 应用程序使用此 JSONP 端点并遇到此特定错误时,它会收到 400 但没有其有效负载。当我将状态更改为 200/300 时,它会正常运行,而 400/500 则不会。
在其他路由 (POST) 上,我可以毫无问题地使用 4** 状态代码和有效负载进行响应。
return res.status(400).send({
message: 'Codes do not match.',
code: '234'
});
知道我忽略了什么吗?
【问题讨论】:
-
您是否将 Express 默认 JSONP 回调配置为 JSON_CALLBACK ?
-
@Nivesh 纠正我的理解,但如果不是这样,
res.jsonp({code: '234'})或res.status(300).jsonp({code: '234'})也不起作用,对吗? -
@Nivesh 如果回调设置不正确,200/300 响应也会失败...
-
我在整个应用程序中都使用 JSONP,所以我很确定它可以正常工作,只是没有 400/500 状态代码。我的 Angular 应用程序像这样请求它
return $http.jsonp('/api/code?callback=JSON_CALLBACK').then(MEAN-stack(上面的代码)响应/**/ typeof angular.callbacks._6 === 'function' && angular.callbacks._6({"code":"234"});正如我所说,JSONP 正在正常工作,只是不要使用 2**/3 以外的 HTTP 代码获取有效负载**
标签: angularjs node.js express mean-stack