2017-12-18 27 views
1

서비스를 통해 업데이트를 시도하고 있습니다. 서비스에서와 동일한 링크가있는 우편 배달부를 사용하면 업데이트가 정상적으로 작동합니다./평균 업데이트가 서비스에서 작동하지 않고, 우편 배달부에서만

updateUser(userid){ 
    let headers = new Headers(); 
    headers.append('Content-Type','application/json'); 
    console.log('http://localhost:3000/users/update/'+ userid); 
    return this.http.put('http://localhost:3000/users/update/'+ userid, 
{headers: headers}).map(res => res.json()); 
} 

내부 경로 나 오류가 발생하지 않는

router.put('/update/:id', (req, res) => { 
User.findByIdAndUpdate(req.params.id, { 
$set: { 
    participates: true} 
}, 
{ 
    new: true 
}, 
function(err, updatedUser){ 
    if(err){ 
    res.send("Error updating user"); 
    } else{ 
    res.json(updatedUser); 
    } 
} 
); 
}); 

을 users.js하지만, 그렇지 않습니다 :

myservice.service.ts : 여기

내 코드입니다 router.put에 입장하는 것 같습니다. 내가 무엇을 놓치고 있습니까? 여기

+0

CORS 헤더가 있습니까? – Claies

+0

[CORS 허용 방법]의 가능한 복제본 (https://stackoverflow.com/questions/7067966/how-to-allow-cors) – georgeawg

+0

'@ angular/http'에서 가져 오기 {Http, Headers}를 사용합니다. 나는 const cors = require ('cors'); app.use (cors());를 사용합니다. 내 index.js 파일 내부 – Ivett

답변

0

은이 URL을 사용했습니다 : 'http://localhost:3000/users/update/'+ 사용자 ID를

하지만 루트에서 당신이 사용하고 있습니다 :/업데이트/: 아이디,

당신이 /사용자가에서이없는이 당신의 경로, 서비스에서 언급 한 것과 같은 URL을 사용하면 경로에서 사용할 수 있으므로 /사용자/업데이트/: id으로 URL을 바꾸면 완벽하게 작동합니다 ..