내 반응 프로젝트에서 Axios를 통해 서버에서 일부 데이터를 가져 오려고합니다. 브라우저에 URL을 입력하고 브라우저에 들어가면 사용자 이름과 암호를 묻고 나면 json 데이터를 볼 수 있습니다. 하지만 get 메서드에서 axios 헤더에 암호와 사용자 이름을 설정하는 방법을 모른다. 나는 많은 포럼과 페이지에서 그것을 찾았는데, 특히이 링크는 나를 도왔다 : Sending axios get request with authorization header. 그래서 마침내 나는 (전에 많은 것들을 시도했지만 더 혼란 스러웠다.)Axios에서 사용자 이름과 암호를 설정하는 방법 메서드 헤더 가져 오기
componentDidMount() {
axios.get('http://my_url/api/stb', {auth: {
username: 'usrnm',
password: 'pswrd'
}})
.then(function(response) {
console.log(response.data);
console.log(response.headers['Authorization']);
}).catch(err => console.log(err));
}
나는 아무것도 얻을 수 없다. 나는 콘솔에서이 오류를 얻을 :
에는 헤더 여부를 정확한 데이터가없는 경우 - 서버의 대답은 이 포함됩니다 HTTP 인증되지 않은 상태 401 :
Error: Network Error Stack trace: [email protected]://localhost:3000/static/js/bundle.js:2195:15 [email protected]://localhost:3000/static/js/bundle.js:1724:14
사실, API 문서가이 단어를 언급 및 메시지 :
< {"status":"ERROR","results":"","error":"401 Unauthorized request"}
성공 확인을 위하여이다 충분한 API에 대한 모든 요청 헤더에 추가 :
Authorization: Basic <base64encode("login":"password")>
이 이상한 것은, 난 우체부를 사용하는 경우, 응답이 나에게 본문 섹션 아래에 "401 인증되지 않은"응답을 보낼 수있다. 하지만 브라우저의 콘솔에서 401 오류를 볼 수 없습니다.
내가 생각하는 나 : 같은 시간 동안 투쟁을 해달라고하는 것을 잊지 말아 api, 확인하시기 바랍니다 또는 aplease에 대한 URL을 공유하시기 바랍니다 –
죄송합니다 내가 공유 URL을 공유하고 예, URL을 보호하고 위에서 언급 한대로, 우리는 메서드의 헤더를 얻을 수있는 권한을 설정해야합니다 말합니다. – escalepion
그러면 먼저 로그인해야합니다. 헤더없이 토큰을 액세스 할 수 있습니다.이 토큰을 통해 다른 api에 액세스 할 수 있습니다. –