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

时间:2019-09-30 17:40:08

标签: javascript spring-boot ecmascript-6 httpresponse

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

1 个答案:

答案 0 :(得分: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