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

REST API 调用可从带有 curl 的终端运行,但我的 Vue/axios 应用程序在浏览器中得到 404

如何解决REST API 调用可从带有 curl 的终端运行,但我的 Vue/axios 应用程序在浏览器中得到 404

如果像这样卷曲:

curl --request POST \
  --url http://localhost:3600/users \
  --header 'content-type: application/json' \
  --header 'user-agent: vscode-restclient' \
  --data '{"email": "marcos.henrique@toptal.com","password": "sup3rS3cr3tPassw0rd!23"}'

这按预期返回:

{"id":"6077f1853bd1e07f173980ef"}

但在我的 Vue 代码中:

      const axios = require("axios");
      console.log("Here goes nothing!");

      let res = axios
        .post(
          "/http://localhost:3600/users",//
          {
            email: "marcos.henrique@toptal.com",password: "sup3rS3cr3tPassw0rd!23",}
        )
        .catch(function (error) {
          console.log(JSON.stringify(error));
        });

在浏览器中显示在控制台返回:

{"message":"Request Failed with status code 404","name":"Error","stack":"createError\nsettle\nhandleLoad","config":{"url":"/http://localhost:3600/users","method":"post","data":"{\"email\":\"marcos.henrique@toptal.com\",\"password\":\"sup3rS3cr3tPassw0rd!23\"}","headers":{"Accept":"application/json,text/plain,*/*","Content-Type":"application/json;charset=utf-8"},"transformRequest":[null],"transformResponse":[null],"timeout":0,"xsrfCookieName":"XSRF-TOKEN","xsrfheaderName":"X-XSRF-TOKEN","maxContentLength":-1,"maxBodyLength":-1}}

在我看来 axios 请求是正确的,但出现了其他错误

我怀疑 CORS 问题并尝试在 Safari(我使用的是 macOS)中通过开发/禁用跨域限制和开发禁用本地文件限制来禁用它。

我在 Chrome 中遇到同样的错误,我也尝试禁用 CORS。

在禁用之前,我遇到了一些 CORS 异常,但现在我得到了 404。

我的 REST API 来自这个博客/演示:

[https://www.toptal.com/express-js/nodejs-typescript-rest-api-pt-2]

和这个代码仓库:

[https://github.com/makinhs/toptal-rest-series]

解决方法

从本行的第一个删除/

"/http://localhost:3600/users"

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