【发布时间】:2018-11-26 16:43:23
【问题描述】:
我正在尝试在我的项目中提出“删除请求”,但没有成功...
向我返回此消息:
""错误 HttpErrorResponse {headers: HttpHeaders, status: 200, statusText: "OK", url: "http://localhost:8080/produtos", ok: false, ...}""
我在 service.ts 上的方法是这样的:
deleteProduct (productId: number): Observable<Product> {
const url = `${this.produtosUrl}`;
return this.http.delete<Product>(url, httpOptions).pipe(
map((response: Response) => response.json())
)
}
我的组件.ts:
delete(productId: number): void {
this.products = this.products.filter(Product => Product.id !== productId);
this.produtoService.deleteProduct(productId).subscribe();
}
我在 node.js 上的方法:
app.delete('/produtos', function (req, res) {
console.log(req.body);
mc.query('DELETE FROM `produtos` WHERE `id`=?', [req.body.id], function
(error, results, fields) {
if (error) throw error;
res.end('Record has been deleted!');
});
});
当然还有html按钮:
<tbody>
<tr *ngFor="let product of products">
<th scope="row">{{product.id}}</th>
<td>{{product.nome}}</td>
<td>{{product.price}}</td>
<td>{{product.url}}</td>
<td> <button class="btn-primary delete" title="delete product"
(click)="delete(product.id)">
Delete
</button></td>
</tr>
</tbody>
很高兴你能帮助我。
@Edit: github 上的项目 =
【问题讨论】:
-
能否请您发布完整的错误代码?
-
错误就是这个(从 f12 获取) ERROR HttpErrorResponse {headers: HttpHeaders, status: 200, statusText: "OK", url: "localhost:8080/produtos", ok: false, …}
-
你能在开发者工具中检查你的网络标签吗,你可能有 403 错误?这可能是由于 CORS,请求中不允许使用大多数 DELETE 方法。
-
根据您的错误/代码,很难确定确切的问题是什么,要么提供更多信息,要么在某些 plunker 或 stackblitz 上重现相同的错误
-
reqURL:localhost:8080/produtos 请求方法:DELETE 状态代码:200 OK 远程地址:[::1]:8080 推荐人策略:no-referrer-when-downgrade 访问控制允许来源: * 连接:keep-alive 内容长度:24 日期:2018 年 6 月 17 日星期日 18:26:45 GMT X-Powered-By: Express Accept: application/json, text/plain, / Accept - 编码:gzip的,放气,BR接受语言:PT-BR,PT; q = 0.9,的en-US; q = 0.8,连接; q = 0.7授权:承载eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI1YjI1ODAwMGE5ZWNmMTNiMTRjZGIyNzYiLCJpYXQiOjE1MjkyNTc0Mjd9.6Wsv7MXLO9aQ1F1VR0WkXUhSuRn68c4O67dQCLualmc 跨度>
标签: javascript node.js angular typescript