繁体   English   中英

如何在本地主机中获取 api,即 react js 中的 localhost/9563

[英]How to fetch api in local host i.e localhost/9563 in react js

When I build the my react js it's not showing any fetch api and gave me error (get/playlist) When I developed the react js web I give proxy in package.json file.I know that it's work only on development side but how to当我构建网站时获取 api 并通过 fetch api 呈现给客户端我可以使用 express js 吗?

我获取的 Api 在 localhost/9563 React js 在 localhost/3000 中运行

最简单的方法是使用 react 中的代理: https://create-react-app.dev/docs/proxying-api-requests-in-development/ - 根据您的问题,您可能已经这样做了。

你能分享你的 package.json 吗? 我怀疑你可能配置错误。


或者,如果您不想使用代理:

确保在您的 Express 应用程序中启用 CORS,由于前端和后端之间的端口不同,您的浏览器的同源策略不适用。 所以请求不会被运行。

您可以使用 CORS 中间件: https://expressjs.com/en/resources/middleware/cors.html

一旦您的 Express 后端允许 CORS,您的请求应该可以正常运行。


附带说明:服务器端 cookies 不会以这种方式发送,因为如果端口不同,许多浏览器不会发送 cookies。 如果您需要在您的 fetch 请求中发送服务器端 cookies,您需要准备好 3 件事:

  1. CORS 在后端启用
  2. CORS 允许凭证 header 在后端设置
  3. 使用{withCredentials: true}选项调用前端提取
  4. 后端和前端都在同一端口下运行(在 localhost 上尤其重要),因此在这种情况下,您可能需要 nginx 来代理后端/前端。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM