gpt4 book ai didi

ruby-on-rails - 本地运行 React/Rails 应用程序

转载 作者:行者123 更新时间:2023-12-03 13:42:18 27 4
gpt4 key购买 nike

我正在尝试在本地运行一个具有 React/Redux 前端并与 Rails api 通信的应用程序。在我的 .env 文件中,我引用了运行我的 api 的端口(rails s 让它在端口上运行为 API_URL 3000),并且我的React 开发服务器在 localhost:3003 上运行的 HOST 中引用。

当我转到 localhost:3003 并启动 React font-end 时,向我的 api 发送请求时出现以下错误: Bothy me .env 文件也指向正确的位置本地主机上的端口。

XMLHttpRequest cannot load http://localhost:3000/users_company. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3003' is therefore not allowed access. The response had HTTP status code 500.

有什么想法吗?

最佳答案

在使用 create-react-app 创建的 React 应用程序中,您可以在 React 应用程序的 package.json 中添加代理。这是我自己的项目中的一个示例。

{
"name": "frontend",
"version": "0.1.0",
"private": true,
"proxy": "http://localhost:8000",
"dependencies": {
"@types/jest": "^19.2.3",
"@types/node": "^7.0.18",
"@types/react": "^15.0.24",
"@types/react-dom": "^15.5.0",
"@types/react-router-dom": "^4.0.4",
"@types/socket.io": "^1.4.29",
"@types/socket.io-client": "^1.4.29",
"axios": "^0.16.1",
"react": "^15.5.4",
"react-dom": "^15.5.4",
"react-router-dom": "^4.1.1",
"socket.io": "^2.0.1",
"socket.io-client": "^2.0.1"
},
"devDependencies": {
"react-scripts-ts": "1.4.0"
},
"scripts": {
"start": "react-scripts-ts start",
"build": "react-scripts-ts build",
"test": "react-scripts-ts test --env=jsdom",
"eject": "react-scripts-ts eject"
}
}

Webpack 将接受请求并将它们代理到 package.json 中指定的 url,并且 CORS 将为您处理。当然,这可以在手动创建的 React 应用程序中完成,但这也意味着手动配置 webpack 来代理请求。

我还应该指出,现在在您的代码中,您不需要像 http://localhost:8000/api/something/some 那样编写整个 url,而是可以只编写 api/something/some.当然,这对于部署非常有帮助,因为现在我们不关心 url 的第一部分,它显然从开发到生产发生了变化。

关于ruby-on-rails - 本地运行 React/Rails 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44932650/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com