我如何在Angular中使用delete方法在正文中传递数据?

问题描述 投票:0回答:1

我具有下面创建的AWS lambda函数,旨在定义软删除和硬删除我的产品。

exports.handler = async (event) => { 
    const product = JSON.parse(event.body);
    let sql;
    let msg;
    let values;
   if (product.action == 'delete')  {
        sql = "UPDATE product_table SET isDeleted=1, deletedon=? WHERE product_id=?";
        msg = 'The product has been sucessfully deleted';
        values = new Date();
    } else if (product.action == 'restore') {
        sql = "UPDATE product_table SET isDeleted=0, deletedon=? WHERE product_id=?";
        msg = 'The product has been successfully restored';        
        values = null;
    }
    
    try {    
        const data = await new Promise((resolve, reject) => {
            connection.getConnection(function (err) {   
                if (err) {
                    reject(err);     
                }
            connection.query(sql, [values, product.product_id], function (err, result) {
                    if (err) {  
                        console.log("Error->" + err);     
                        reject(err);        
                    }         
                    resolve(result);  
                });     
            });  
        }); 
        
        return { 
            statusCode: 200,  
            body: JSON.stringify(msg)
        };     
    } catch (err) {    
        return {   
            statusCode: 400,   
            body: JSON.stringify(err.message) 
        };
    }
};

想法是使用API​​中的单个delete方法,并在JSON对象中传递id和action值以在删除和恢复之间切换。

我能够在Postman上进行此工作,但不能从我的Angular Application中进行。我正在传递sam值,就像使用POST方法一样。您能帮我解决我所缺少的吗?

下面是角度代码:

deleteProductData(product_id:number,action:string) {
      const header: HttpHeaders = new HttpHeaders()
          .append('Content-Type', 'application/json; charset=UTF-8')
      const httpOptions = {
          headers: header,
          body:JSON.stringify({ "product_id": product_id,"action":action })
      };    
     return this.http.delete<any>(this.productGetUrl, httpOptions);
  }
angular amazon-web-services delete-method
1个回答
0
投票

发现了问题。我的配置不正确。

[我试图在'body'内部发送delete方法的数据,不知道delete方法仅支持queryStringParameters或pathParameters。

我能够通过重构后端来解决此问题,类似于我配置GET请求的方式。

希望这可以帮助某人。

温馨的问候,阿迪

© www.soinside.com 2019 - 2024. All rights reserved.