2017-10-04 4 views
0

CURL과 같은 것을 사용하는 것처럼 Node에서 Axios를 사용하려고합니다. 내 노드 끝점에 대한 API 요청을하고 있습니다. 그런 다음 Axios를 사용하여 Spotify에 요청하여 일부 OAuth 작업을 수행합니다. Axios 요청에서 응답이 성공적으로 반환되지만 Express에서 응답을 보내려고하면 헤더가 이미 전송되었다고합니다. 아래는 문제를 격리하기 위해 설정 한 테스트입니다. 이렇게하면 "보낸 후 헤더를 설정할 수 없습니다"라는 오류가 발생합니다.Axios는 보낸 후에 헤더를 설정할 수 없습니다.

makeRequest: function(req, res, next) { 

    axios.get('https://google.com') 
     .then(function(){ 
      res.status(200).send({}); 
     }); 
} 

이 작업을 수행 할 수 있습니까? 감사.

답변

0

모든 요청의 헤더가 수정되어 일부 문제가 발생했다고 생각합니다.

res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,PATCH'); 

Axios를 사용하는 요청에 대해 다른 라우터를 사용 했으므로 이제는 제대로 작동합니다. 다음과 같은 메시지가 표시됩니다.

app.use('/api', apiRouter); 
app.use('/callback', axiosRouter); 

apiRouter.use(function(req, res, next) { 
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,PATCH'); 
} 

//I don't modify the axiosRouter headers 
+0

내가 무슨 말을했는지 확신 할 수 없지만 답장을 보내면 헤더를 설정하지 않는 것입니다. –

관련 문제