微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Axios Delete 在 React App 中不工作,但在 PostMan/Insomnia 中工作

如何解决Axios Delete 在 React App 中不工作,但在 PostMan/Insomnia 中工作

当我通过邮递员发送请求时,Axios DELETE 可以工作,但在我的 React 应用程序中却没有。我正在传递 MongoDB 分配条目的 _id。我正在启动 ObjectId 但它仍然不起作用。我还仔细检查了我是否使用了正确的路线。

在我的应用程序中,我有调用 SaveBook 的点击函数。那部分我感觉还可以。如果我需要分享其他内容,请告诉我。

前端AuthActions.js中的SaveBook

    - alert: "Dependency Status - {{ $labels.serviceName }} unhealthy "
      expr: 100*avg_over_time(dependency_status{}[30m]) < 90
      for: 1m
      labels:
        severity: warning
        action: page
        pager: pagerDutyService
      annotations:
        summary: "Dependency Unhealthy - Service: {{ $labels.serviceName }}"
        information: "Dependency Status availability rate over 30m for service "{{ $labels.serviceName }} at {{ $value }}%"

users.js 中服务端的删除操作

export const saveBook = ({books,user,book,_id}) => {
    return function () {
        
        console.log(`This is id ${JSON.stringify(_id)}`)


          const savedindex = books.indexOf(book);
         

        if (savedindex >= 0) {
            console.log(savedindex)
            axios
            .delete("/api/users/wishlist",{_id})
        } else {
            console.log(savedindex)
            // console.log(`Adding ${book.book.title} to faves...`);
            axios
            .post("/api/users/dashboard",{book,user})
            .then(console.log("success"))
            .catch (err =>
                json(err)
            );
        }
    }
   };

解决方法

我意识到 req.body 不是 Delete 方法的正确选择,并使用 url params/req.params 发送 _id。这很好用。

在 authActions.js 中修复了这一行

axios
    .delete("/api/users/wishlist/" + _id,) 

在 Users.js 中修复了这几行

 router.delete('/wishlist/:id',(req,res) => {
    const db = mongoUtil.getDb();
    
    db.db("mern-auth-2").collection("savedbooks")
    
    // .deleteOne({_id:ObjectId(req.body._id)})
    .deleteOne({_id:ObjectId(req.params.id)})

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。