IT이야기

Axios - 한 번의 호출만으로 헤더 권한 부여 제거

cyworld 2022. 5. 2. 21:22
반응형

Axios - 한 번의 호출만으로 헤더 권한 부여 제거

axios.defaults를 제거하는 방법헤더.공통한 번의 통화로 승인하시겠습니까?

내 도메인에 대한 모든 호출의 기본값을 설정하지만 다른 도메인에 대한 호출이 1개 있으며 토큰이 전달되면 호출에 오류가 발생하며 기본 Auth 토큰이 저장되지 않으면 모든 작업이 정상적으로 작동함

그래서 내가 하려는 것은 그 특정 전화에서 Auth를 통과시키지 않는 것이다.

이거 해봤는데 안 되네.

    loadApiCoins({ commit }) {
        Vue.axios({
            method: 'get',
            url: 'https://api.coinmarketcap.com/v1/ticker/',
            headers: {
                'Authorization': '',
            },
        }).then(...)
    },

나도 auth: {...}을(를) 시도해 보았지만 그것도 효과가 없다.해결책은?고마워요.

다음을 시도해 보십시오.

delete axios.defaults.headers.common["Authorization"];
// or which ever header you have to remove

다음 없이 요청을 전송하려면:

  • 글로벌 수정axios채무 불이행
  • 새 항목 만들기axios예시

이와 유사하게 요청을 변경하십시오.

axios.get('http://example.com', {transformRequest: (data, headers) => {
    delete headers.common['Authorization'];
    return data;
  }
});

내가 찾던 답변은 아푸르바 자인의 답변 댓글에 올라갔지만 개별 답변이 나오지 않아 쉽게 참고할 수 있도록 따로 올렸다.)

모든 요청에 대한 기본 '승인'이 이미 있는 경우 특정 요청에 대한 인스턴스를 생성하십시오.

var instance = axios.create();
delete instance.defaults.headers.common['Authorization'];

instance.get("http://api.com");

delete axios.defaults.headers.common["Authorization"];문제를 해결할 것이다.그러나 권한 부여 헤더를 다시 추가하는 것을 잊지 마십시오.

내 웹 서비스 인증 토큰으로 S3을 조회하려고 해도 같은 문제가 발생했어.이것으로 고쳤다.

axios.get("http://api.com", {
        headers:{ Authorization:""}
});

기본 헤더를 빈 문자열로 변경할 수 있으며, 일반 기본 헤더에는 영향을 미치지 않음.모든 웹 서비스가 빈 문자열 헤더를 무시할지는 확실하지 않지만.

delete request.defaults.headers.common.Authorization

저것request의 반환이어야 한다.$axios.create()

간단한 해결 방법은 다음과 같은 새로운 공리 인스턴스에서 공통 헤더를 모두 제거하는 것이다.

const awsAxios = axios.create({
    transformRequest: (data, headers) => {
        // Remove all shared headers
        delete headers.common;
        // or just the auth header
        delete headers.common.Authorization;
    }
});

@pantomraa의 대답을 확장하려면, 당신은 사용하기를 원할지도 모른다.

this.$axios.$get(
      url, {
      // modify auth header for current request only
      transformRequest: (data, headers) => {
        // prevent the header from being added by default
        delete headers.common['Authorization'];
        // some libraries might set it directly as well, e.g. nuxtjs/auth
        delete headers['Authorization'];
        return data;
      }
})

미안, 코멘트를 하려면 좀 더 많은 상담원이 필요해.

acios.properties를 삭제하다headers.common["언어"];

참조URL: https://stackoverflow.com/questions/46656474/axios-remove-headers-authorization-in-1-call-only

반응형