当前位置: 首页 > 知识库问答 >
问题:

ReactJS后端请求和代理

李昊苍
2023-03-14

关于 ReactJS 在开发和生产中应该如何工作,我有几个问题。我的 ReactJS 应用程序是从创建应用样板开始构建的。我有一个Spring靴后端在端口 8080 上侦听。我注意到的第一件事是,如果我设置一个这样的代码来发出请求,代码就会挂起:

async componentDidMount() {
    ...
    const response = await fetch('http://localhost:8080/api/compliance');

我需要把它转换成:

async componentDidMount() {
    ...
    const response = await fetch('/api/compliance');

然后添加一行:

"proxy": "http://localhost:8080",

这工作得很好。问题是,当我把它放在一个正式生产环境(或集成环境)中时,我有一个像http://www.mywebsite.com这样的网址:

Invalid Host Header

在网上看,我注意到这可能是为了:

1. proxy that checks. the HTTP Header host and verify it to avoid security attacks
2. webpack package

我想了解:

1. Is proxy really necessary to let ReactJS app talk with its backend?
2. If no, how I can solve the issue (currently solution on the web didn't solve my problem)?

共有1个答案

南宫龙野
2023-03-14

一般来说,代理不适用于生产。你的应用程序应该在同一个端口,在一个服务器上提供应用程序和api。https://stackoverflow.com/a/46771744/8522881

 类似资料:
  • Java import java.io.IOException; import java.net.URLEncoder; import java.security.MessageDigest; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import jav

  • 我正在使用CreateReact应用程序编写SPA,并使用expressjs服务器作为后端。对于开发,我在端口3000上运行前端测试服务器,在3003上运行后端expressjs测试服务器。 我使用Axios在客户端进行了许多API调用,因此为了便于开发,我定义了代理:http://localhost:3003“在我的包裹里。json 这在我的笔记本电脑上运行正常,但在我的工作站上运行时,我在访问

  • 不幸的是,使用JSONP模块的服务使用明显不同的类来模拟后端。 类用于此场景。

  • 我正在我的本地主机上构建Web应用程序。 前端是Reactjs框架,运行在LocalHost:3000中

  • 后端 前端 请求报错

  • 用的vite运行vue,后端我开了环境软件,wampserver 是不是因为后端的PHP文件没有被解析???所以返回的是php的源代码???我先用的axios请求,结果是这样,后来换了XMLHttp请求还是这样,刚学vue3,卡在这了,百度了好久没找到答案,求大佬解答