ResponseEntity和JavaScript-如何检索自定义错误消息

问题描述 投票:0回答:1

我想知道从服务器(Spring Boot)检索消息并在前端(Vue JS,ES6)中显示的野兽方法是什么。

后端(这是我成功的唯一方法,可以在标头中传递错误消息,但是也许有更好的解决方案?):

public ResponseEntity<?> getOneReport(@PathVariable Long incidentId) {

...

    HttpHeaders header = new HttpHeaders();
    header.setContentType(MediaType.TEXT_PLAIN);
    header.set("text", "My custom error message");
    return ResponseEntity.notFound()
            .headers(header)
            .build();

前端:

axios.get(...)
.then(...)
.catch((error) => {
      console.log(error.headers.text);

我试图将我的自定义错误消息从服务传递给客户端,如下所示:

return new ResponseEntity<Object>(
                "My custom error message that I want to display in frontend", new HttpHeaders(), HttpStatus.FORBIDDEN);

但我不知道如何从客户端(ES6 / Vue js)读取该消息:

.catch((error) => {
                        console.log(error.error);

.catch((error) => {
                        console.log(error.response.data); -> I get Blob {size: 59, type: "text/plain"}
javascript spring-boot ecmascript-6 httpresponse
1个回答
0
投票

您是否尝试过使用response.headers?

axios.get(...)
   .then(response){
         console.log(response.headers)
      }
   .catch((error) => {
         console.log(error.headers.text);

这里是文档:https://github.com/axios/axios#response-schema

© www.soinside.com 2019 - 2024. All rights reserved.