programing

Axios가 내 요청 매개 변수를 인코딩하지 못하도록 하려면 어떻게 해야 합니까?

bestprogram 2023. 3. 28. 22:44

Axios가 내 요청 매개 변수를 인코딩하지 못하도록 하려면 어떻게 해야 합니까?

GET 요청의 URL 파라미터를 통해 API 키를 전달하려고 합니다.

단, Axios는 요청을 보낼 때 API 키의 문자를 인코딩하는 것을 알 수 있습니다.이로 인해 API는 키를 인식할 수 없기 때문에 요청을 거부합니다.

Axios가 GET 파라미터를 부호화하지 않도록 하려면 어떻게 해야 합니까?

다음과 같이 커스텀 파라미터 시리얼라이저를 사용할 수 있습니다.

axios.get('https://foobar.com/api', {
  paramsSerializer: function(params) {
    var result = '';
    // Build the query string 
    return result;
  }
});

paramsSerializer는 인스턴스 수준에서 설정할 수 있습니다.

var instance = axios.create({ paramsSerializer: function(params) { /* ... */ } })

또는 글로벌 수준:

axios.defaults.paramsSerializer = function(params) { /* ... */ };

다른 옵션은 api 키를 URL에 직접 추가하는 것입니다.

axios.get('https://foobar.com/api?api_key=' + key);

params' config 옵션을 사용하여 파라미터를 추가할 수 있습니다.

axios.get('https://foobar.com/api?api_key=' + key, {
  params: {
    foo: 'bar'
  }
});

qs 라이브러리(또는 유사한 부호화 lib)를 사용하는 경우 다음 작업을 수행할 수도 있습니다.

import qs from 'qs';

axios.get('https://foobar.com/api', {
    params,
    paramsSerializer: (params) => qs.stringify(params, { encode: false }),
});

언급URL : https://stackoverflow.com/questions/39116731/how-to-prevent-axios-from-encoding-my-request-parameters