Axios를 사용하는 동안 오류가 발생했지만 Postman에서 올바른 응답

NickW

백엔드에서 Axios를 사용하는 데 문제가 있습니다. 내가 이것을 처음 접했기 때문에 아마도 매우 간단한 수정 일 것입니다.

Postman : 유효한 자격 증명과 유효하지 않은 자격 증명 모두에 대해 올바른 응답이 수신됩니다.

Axios : 유효한 자격 증명에 대해 올바른 응답이 수신되지만 잘못된 자격 증명이 입력되면 axios 메서드의 catch 블록이 실행됩니다.

authController.js :

exports.login = (req, res, next) => {
    const email = req.body.email;
    const pass = req.body.password;
    let loadedUser;

    User.findOne({ where: { email: email } })
        .then(user => {
            if(!user) {
                const error = new Error('Incorrect username or password');
                error.statusCode = 401;
                throw error;
            } else {
                loadedUser = user;
                return bcrypt.compare(pass, user.password);
            }
        })
        .then(isEqual => {
            if(!isEqual) {
                const error = new Error('Incorrect username or password');
                error.statusCode = 401;
                throw error;
            } else {
                const token = jwt.sign(
                    {
                        email: loadedUser.email,
                        userId: loadedUser.id
                    }, 
                    process.env.JWT_SECRET,
                    { expiresIn: '1hr' }
                );
                res.status(200).json({ token: token, userId: loadedUser.id });
            }
        })
        .catch(err => {
            if (!err.statusCode)
                err.statusCode = 500;
            next(err);
        });

};

app.js의 오류 처리기. axios에서도 잘못된 자격 증명을 입력하면 오류를 올바르게 기록하는 것 같습니다.

app.use((error, req, res, next) => {
    const status = error.statusCode || 500;
    const message = error.message;
    const data = error.data || 'No Data';

    console.log(status, message, data);

    res.status(status).json({message: message, data: data});
});

하지만 axios catch 블록이 실행되므로 json 메시지를받는 대신 다음 오류가 발생합니다.

login(email, password) {
    const headers = {
        'Content-Type': 'application/json'
      };

      const data = JSON.stringify({
        email: email,
        password: password
      });

      axios.post('http://127.0.0.1:8080/auth/login', data, { headers })
          .then(res => console.log(res))
          .catch(err => console.log(err));

}

잘못된 자격 증명에 대한 콘솔의 오류 : 콘솔 오류강조 표시된 링크를 클릭하면 "Cannot GET / auth / login"이라는 새 페이지가 열리지 만 분명히 게시 요청을하고 있으며 양식에 게시물을 추가했습니다. 케이스)

내가 놓칠 수있는 아이디어가 있습니까?

감사

허리케인

실제로 코드는 잘 작동하지만 Axios는 상태가 401 인 경우 통화 약속을 거부 합니다 . 상태가 200에서 300 사이이면 약속이 해결됩니다.

이를 처리하는 두 가지 방법이 있습니다.

catch 블록에서 상태를 확인하십시오.

axios.post('http://127.0.0.1:8080/auth/login', data, {
    headers
  })
  .then(res => console.log(res))
  .catch(err => {
    if (err.response.status === 401) {
      //Auth failed
      //Call reentry function
      return;
    }
    return console.log(err)
  });

또는 validateStatus옵션을 변경하십시오 .

axios.post('http://127.0.0.1:8080/auth/login', data, {
    headers,
    validateStatus: function (status) {
       return status >= 200 && status < 300 || (status === 401);
    },
  })
  .then(res => console.log(res))
  .catch(err => return console.log(err));

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

한 시스템에서만 소수를 사용하는 동안 오류가 발생했습니다. 자바

분류에서Dev

JHipster를 사용하여 만든 스프링 부트 응용 프로그램에서 npm 설치를 사용하는 동안 오류가 발생했습니다.

분류에서Dev

다른 서버에서 avro 소스 및 싱크를 사용하는 동안 오류가 발생했습니다.

분류에서Dev

사용자 지정 서비스를 다른 사용자 지정 서비스에 삽입하는 동안 오류가 발생했습니다.

분류에서Dev

톱니 바퀴에서 client.latency를 사용하는 동안 오류가 발생했습니다.

분류에서Dev

데이터베이스에서 가져오고 HTTP 응답에 결과를 반환하는 동안 오류가 발생했습니다.

분류에서Dev

자바 스크립트에서 루프를 사용하여 한 개체에서 두 개체를 만드는 동안 오류가 발생했습니다.

분류에서Dev

전역 CheckBox를 만들고 메서드에서 사용하는 동안 오류가 발생했습니다.

분류에서Dev

springboot에서 @Autowired를 사용하는 동안 오류가 발생했습니다.

분류에서Dev

Pyspark에서 mapPartitions를 사용하는 동안 오류가 발생했습니다.

분류에서Dev

''에 대한 HTTP 응답을받는 동안 오류가 발생했습니다. 이는 HTTP 프로토콜을 사용하지 않는 서비스 엔드 포인트 바인딩 때문일 수 있습니다.

분류에서Dev

Symfony에서 Doctrine을 사용하여 엔티티를 만드는 동안 오류가 발생했습니다.

분류에서Dev

데이터를 게시하는 동안 웹 응답에서 내부 서버 오류가 발생하지만 브라우저를 사용하여 작동합니다. C #

분류에서Dev

bazel 지원을 사용하여 Android에서 tensorflow를 빌드하는 동안 오류가 발생했습니다.

분류에서Dev

IOS의 Custom Table View Controller의 응답에서 데이터를로드하는 동안 예외 오류가 발생했습니다.

분류에서Dev

Elasticsearch for Query에서 사용자 지정 분석기를 정의하는 동안 오류가 발생했습니다.

분류에서Dev

Flask (Python)에서 사용자 지정 예외를 처리하는 동안 오류가 발생했습니다.

분류에서Dev

R sqldf 패키지에서 datename / datepart를 사용하는 동안 오류가 발생했습니다.

분류에서Dev

desc를 사용하여 postgresql에 인덱스를 만드는 동안 오류가 발생했습니다.

분류에서Dev

장치에 이미지를로드하는 동안 오류가 발생했습니다 (빠른).

분류에서Dev

장치에 이미지를로드하는 동안 오류가 발생했습니다 (빠른).

분류에서Dev

JObject에 사용자 지정 개체를 추가하는 동안 오류가 발생했습니다.

분류에서Dev

WCF-프로덕션 서버 전용-HTTP 응답을받는 동안 오류가 발생했습니다.

분류에서Dev

Web API 응답에서 액세스 토큰 값을 읽는 동안 오류가 발생했습니다.

분류에서Dev

phonegap 응용 프로그램에서 sqlite를 사용하여 내장 데이터베이스를 구현하는 동안 오류가 발생했습니다.

분류에서Dev

Helm을 사용하여 데비안에서 kubernetes를 설정하는 동안 오류가 발생했습니다.

분류에서Dev

부팅시 적응 형 올가미 기능을 사용하는 동안 오류가 발생했습니다.

분류에서Dev

angularjs에서 사용자 정의 서비스를 사용하는 동안 오류가 발생했습니다.

분류에서Dev

angularjs에서 사용자 정의 서비스를 사용하는 동안 오류가 발생했습니다.

Related 관련 기사

  1. 1

    한 시스템에서만 소수를 사용하는 동안 오류가 발생했습니다. 자바

  2. 2

    JHipster를 사용하여 만든 스프링 부트 응용 프로그램에서 npm 설치를 사용하는 동안 오류가 발생했습니다.

  3. 3

    다른 서버에서 avro 소스 및 싱크를 사용하는 동안 오류가 발생했습니다.

  4. 4

    사용자 지정 서비스를 다른 사용자 지정 서비스에 삽입하는 동안 오류가 발생했습니다.

  5. 5

    톱니 바퀴에서 client.latency를 사용하는 동안 오류가 발생했습니다.

  6. 6

    데이터베이스에서 가져오고 HTTP 응답에 결과를 반환하는 동안 오류가 발생했습니다.

  7. 7

    자바 스크립트에서 루프를 사용하여 한 개체에서 두 개체를 만드는 동안 오류가 발생했습니다.

  8. 8

    전역 CheckBox를 만들고 메서드에서 사용하는 동안 오류가 발생했습니다.

  9. 9

    springboot에서 @Autowired를 사용하는 동안 오류가 발생했습니다.

  10. 10

    Pyspark에서 mapPartitions를 사용하는 동안 오류가 발생했습니다.

  11. 11

    ''에 대한 HTTP 응답을받는 동안 오류가 발생했습니다. 이는 HTTP 프로토콜을 사용하지 않는 서비스 엔드 포인트 바인딩 때문일 수 있습니다.

  12. 12

    Symfony에서 Doctrine을 사용하여 엔티티를 만드는 동안 오류가 발생했습니다.

  13. 13

    데이터를 게시하는 동안 웹 응답에서 내부 서버 오류가 발생하지만 브라우저를 사용하여 작동합니다. C #

  14. 14

    bazel 지원을 사용하여 Android에서 tensorflow를 빌드하는 동안 오류가 발생했습니다.

  15. 15

    IOS의 Custom Table View Controller의 응답에서 데이터를로드하는 동안 예외 오류가 발생했습니다.

  16. 16

    Elasticsearch for Query에서 사용자 지정 분석기를 정의하는 동안 오류가 발생했습니다.

  17. 17

    Flask (Python)에서 사용자 지정 예외를 처리하는 동안 오류가 발생했습니다.

  18. 18

    R sqldf 패키지에서 datename / datepart를 사용하는 동안 오류가 발생했습니다.

  19. 19

    desc를 사용하여 postgresql에 인덱스를 만드는 동안 오류가 발생했습니다.

  20. 20

    장치에 이미지를로드하는 동안 오류가 발생했습니다 (빠른).

  21. 21

    장치에 이미지를로드하는 동안 오류가 발생했습니다 (빠른).

  22. 22

    JObject에 사용자 지정 개체를 추가하는 동안 오류가 발생했습니다.

  23. 23

    WCF-프로덕션 서버 전용-HTTP 응답을받는 동안 오류가 발생했습니다.

  24. 24

    Web API 응답에서 액세스 토큰 값을 읽는 동안 오류가 발생했습니다.

  25. 25

    phonegap 응용 프로그램에서 sqlite를 사용하여 내장 데이터베이스를 구현하는 동안 오류가 발생했습니다.

  26. 26

    Helm을 사용하여 데비안에서 kubernetes를 설정하는 동안 오류가 발생했습니다.

  27. 27

    부팅시 적응 형 올가미 기능을 사용하는 동안 오류가 발생했습니다.

  28. 28

    angularjs에서 사용자 정의 서비스를 사용하는 동안 오류가 발생했습니다.

  29. 29

    angularjs에서 사용자 정의 서비스를 사용하는 동안 오류가 발생했습니다.

뜨겁다태그

보관