【发布时间】:2019-09-22 02:38:06
【问题描述】:
我在前端使用create-react-app 生成的服务器(在后台它使用Webpack 的开发服务器),我在后端使用Node/Express。每当我使用这种组合时,我总是会遇到 XSS 问题(例如,在 localhost:3000 和 localhost:4000 之间),因为两个服务器必须在不同的端口上运行。
鉴于我的生产站点将提供来自同一个域的所有内容,我真的不需要 CORS 或任何花哨的东西。在这样的本地开发环境中,是否有任何简单/黑客方法来避免跨域问题?
【问题讨论】:
-
可以在express服务器中设置响应头“Access-Control-Allow-Origin”为“*”。这个post 可能会有所帮助
-
在 dev 中,可以将 Express 设置为 webpac-dev-server 的反向代理,这样您的 React 应用程序不知道脚本包是从 webpack-dev-server 获取的,也不知道 webpack -dev-server 存在。因此,您没有 CORS 问题,因为一切都来自一个来源:Express。类似的生产安排,唯一的区别是 Express 应该从磁盘而不是从 webpack-dev-server 提供 webpack 构建工件(包等),因为后者并不真正用于生产。如果你对 Typescript 没问题,我可以提供一个例子。
-
这些都是很好的答案(尽管@nithin 的建议听起来最简单)。但我不能以评论的形式投票和/或接受任何一个,所以请提供这些作为答案:)
标签: node.js reactjs express create-react-app