【问题标题】:How to return string as a response to http request如何返回字符串作为对 http 请求的响应
【发布时间】:2017-05-27 16:53:37
【问题描述】:

在我的 Maven 应用程序中,我已将 put http 请求映射到此函数(使用 spring 框架),我想检查其中的内容并将响应作为文本发送。然后我想从 angularjs 发送该请求并将该响应存储到 angularjs 控制器的某个变量中。这是我尝试过的。

@RequestMapping(path="/play", method={RequestMethod.POST}, produces = {MediaType.APPLICATION_JSON_UTF8_VALUE})
public String someFunction(){
    //...
    return "some text";
    }

$scope.getResponse = function(param1, param2...){

            $http.post("url..").then(
                    function(response){
                        $scope.response = response.data.response;
                        console.info('success');
                    },
                    function(response){
                        console.info('failure');
                    })

        }

Http 被正确映射并在浏览器中工作,问题是如何将文本响应存储到控制器中的某个 angularjs 变量中。

【问题讨论】:

  • @progyammer 是的,我的错,该函数正在返回字符串,已编辑。
  • 从下一次开始,不要在问题中输入代码:这很容易出现拼写错误。只需复制粘贴即可。
  • 你应该在spring方法中添加@ResponseBody
  • Http 被正确映射并在浏览器中工作 -- 你是如何测试来自浏览器的 post 请求的?
  • 你能在成功回调中分享console.log(response);的结果吗?您是否也从 angularjs 控制器触发了这个 http 请求?

标签: javascript java angularjs spring maven


【解决方案1】:

$http 似乎很难解析响应中的无效 JSON 数据。 我们有 produces = {MediaType.APPLICATION_JSON_UTF8_VALUE} 用于 API 并发送纯文本。这就是它转到故障处理程序的原因。

将媒体类型更改为MediaType.TEXT_PLAIN_VALUE,看看是否有效...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-21
    • 2022-01-10
    • 2020-01-15
    • 1970-01-01
    • 2018-09-19
    • 2023-04-09
    • 2022-07-27
    • 1970-01-01
    相关资源
    最近更新 更多