Я делаю основной инструмент отслеживания проблем. Я могу сделать HTTP-запрос к API-интерфейсу сервера, который я построил. Кроме запроса PUT, все остальные запросы работают нормально.
Когда я пытаюсь редактировать данные пользователя. я получаю сообщение об ошибке ниже
Access to XMLHttpRequest at 'http://trackerapi.sanjayinfotechy.com/api/v1/user/:userId/edit?authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqd3RpZCI6IlBQT1ROYTlDbSIsImlhdCI6MTU1Njc4NTEwMjQ1NSwiZXhwIjoxNTU2ODcxNTAyLCJzdWIiOiJhdXRoVG9rZW4iLCJpc3MiOiJlZENoYXQiLCJkYXRhIjp7Im1vYmlsZU51bWJlciI6MTIzNDU2LCJmaXJzdE5hbWUiOiJtdW5uYSIsImxhc3ROYW1lIjoiZGhpbmlsIiwidXNlcklkIjoiZWYybU93aVdzIiwiZG9iIjoiMTk5Ni0wMy0wOFQwMDowMDowMC4wMDBaIiwiY29tcGFueU5hbWUiOiJXZWxscyBGYXJnbyIsInJvbGUiOiJBbmFseXN0IiwiZW1haWwiOiJtdW5uYS5kaGluaWxAZ21haWwuY29tIn19.CUctgYPuZmwsZf3rFTQqTWFOsttBdz6bTZFt7mPxYcY' from origin 'http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Когда я пытаюсь выполнить тот же самый положенный запрос в почтальоне, я могу успешно редактировать данные без каких-либо ошибок. Ошибка возникает только в угловом 4 проекте.
см. Мой код ниже
http.service.ts file
public editUserDetails(authToken, userId, data): Observable<any>{
const params = new HttpParams()
.set('userId', userId)
.set('firstName', data.firstName)
.set('lastName', data.lastName)
.set('dob', data.dob)
.set('companyName', data.companyName)
.set('role', data.role)
.set('mobileNumber', data.mobileNumber)
.set('email', data.email)
.set('password', data.password)
return this.http.put(`${this.url}/user/:userId/edit?authToken=${authToken}`, params)
} // end edit user details
и это файл edit.component.ts
public editFunction: any = () =>{
let data = {
firstName: this.currentUser.firstName,
lastName: this.currentUser.lastName,
dob: this.currentUser.dob,
companyName: this.currentUser.companyName,
role: this.currentUser.role,
mobileNumber: this.currentUser.mobileNumber,
email: this.currentUser.email,
}
this._http.editUserDetails(this.authToken, this.currentUserId, data).subscribe(
(apiResponse)=>{
if(apiResponse.status === 200){
this.toastr.customToastr('Details Edited Successfully')
setTimeout(()=>{
this.router.navigate(['/user-info'])
}, 1500)
} else {
this.toastr.warningToastr(apiResponse.message)
}
},
(err)=>{
console.log(err)
this.toastr.errorToastr(`Some Error Occured`)
}
)
} // end edit function
код для редактирования в API бэкэнда с использованием nodejs
let editUser = (req, res)=>{
let options = req.body || req.query || req.params
UserModel.update({userId: req.params.userId || req.body.userId || req.query.userId}, options, {multi: true}, (err, result)=>{
if (err) {
console.log(err)
logger.error(err.message, 'User Controller: editUser', 10)
let apiResponse = response.generate(true, 'Failed To Edit User Details', 500, null)
res.send(apiResponse)
} else if (check.isEmpty(result)) {
logger.info('No User Found', 'User Controller: editUser')
let apiResponse = response.generate(true, 'No User Found', 404, null)
res.send(apiResponse)
} else {
let apiResponse = response.generate(false, 'User Details Edited successfully', 200, result)
res.send(apiResponse)
}
})
} // end edit user
пожалуйста, дайте мне знать, где я делаю код неправильно.