如何解决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 举报,一经查实,本站将立刻删除。