我需要使用貓鼬在我的mongodb上刪除記錄。Angular 2:方法DELETE不允許通過預檢響應中的Access-Control-Allow-Methods
這裏是我的組件
deleteProduct(product){
this._confirmationService.confirm({
message: 'Are you sure you want to delete the item?',
accept:() => {
this._productsAdminService.deleteProduct(product._id)
.subscribe(products => {
products.forEach(function(product){
if(product.cat_id === 1) product.catName = 'Dota Shirts';
if(product.cat_id === 2) product.catName = 'Gym Shirts';
if(product.cat_id === 3) product.catName = 'Car Shirts';
});
this.products = products;
},
err => console.log(err));
}
})
}
基本上這只是將產品ID傳遞到服務執行HTTP請求。
這裏是我的服務
deleteProduct(productId){
let headers = new Headers({'Authorization': 'JWT ' + localStorage.getItem('currentUserToken')});
let options = new RequestOptions({ headers: headers});
return this._http.delete('http://localhost:3000/admin/products/delete/' + productId, options)
.map((response: Response) => response.json())
.catch(this._handlerError);
}
我使用的刪除方法叫我在expressJS API。
這裏是我的API
productsAdminRouter.route('/delete/:productId')
.delete(function(req,res){
id = req.params.productId;
console.log(id);
Products.findByIdAndRemove(id)
.exec(function(err, done){
if (err) throw err;
Products.find()
.exec(function(err, products){
res.json(products);
});
});
});
但我總是得到這個錯誤
誰能幫助?我卡住了。
你能教我如何以及在哪裏把我的代碼訪問控制允許方法頭?我現在有授權標題,我不知道如何設置訪問控制。順便說一下,我已經啓用了cors –
嘗試 res.header(「訪問控制允許標題」,「授權,起源,X請求,與內容類型,接受」); (「Access-Control-Allow-Methods」,「PATCH,POST,GET,PUT,DELETE,OPTIONS」); ('OPTIONS'=== req.method){ return res.send(200); } – flashjpr