【问题标题】:Angular can't parse Spring responseAngular 无法解析 Spring 响应
【发布时间】:2015-06-19 08:53:18
【问题描述】:

我在尝试从 Spring RESTful Web 服务接收响应消息到 AngularJS 客户端时遇到一些问题。

我正在使用ResponseEntity<String> 向客户端返回响应。当我在正文中发送响应消息时,仅返回状态代码但 AngularJS 以 Unexpected token R 失败时,此方法有效。

我做错了什么?

return new ResponseEntity<String>(HttpStatus.OK);

但这不起作用:

return new ResponseEntity<String>("Report was updated successfully", HttpStatus.OK);

AngularJs 代码:

$http.get(url, header)
    .success(function(data, status, headers, config) {
        // some logic
    }).error(function(resp, status) {
        // some logic
    });

回复:

【问题讨论】:

    标签: java javascript ajax angularjs spring-boot


    【解决方案1】:

    Angular 是否期待 JSON 或 HTML/文本返回?

    我过去曾遇到过返回 text/javascript 或 application/json 而不是 text/html 的问题。看起来 Angular 在该实例中期待 JSON 或 JSONP,因此是 Unexpected Token R(这是您的响应字符串的第一个字母)。

    我可以给出更准确的答案,但我还需要知道您使用的是 JSONP 还是 JSON 等。

    【讨论】:

    • 到目前为止,我已经尝试了两个标题,application/jsontext/plain,但目前还没有运气。我对 Angularjs 不太熟悉,而且我还在学习过程中,所以我不确定它是 JSON 还是 JSONP,我想我只是使用默认的 Angular $http 配置。
    • 您可以尝试将消息格式化为:{"data": "Report was updated successfully"} 看看是否通过?
    • 是的,这听起来像是一种解决方法,我明天试试,让你知道。谢谢
    • 所以解决方法已经奏效。我创建了一个自定义 Message 对象,其中包含一个字符串消息变量。一个廉价而肮脏的解决方案 - 但仍然是一个解决方案!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-11
    • 2018-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-29
    相关资源
    最近更新 更多