首页 > 解决方案 > ResponseEntity 和 JavaScript - 如何检索自定义错误消息

问题描述

我想知道从服务器(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"}

标签: javascriptspring-bootecmascript-6httpresponse

解决方案


你试过response.headers吗?

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

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


推荐阅读