直接从服务器上的React后端访问API

时间:2019-07-08 11:47:36

标签: django reactjs rest axios

我使用Django作为后端,使用React作为前端。 我正在使用PM2启动react前端,并通过PM2访问Django后端。我还安装了Nginx作为反向代理,以将查询重定向到 * mydomain.toplevel / admin改为Django管理员 * mydomain.toplevel /到反应前端

后端和前端使用DJANGO REST框架和Axios for React通过REST API进行通信。

我目前的主要问题是:是否可以让前端和后端直接在服务器上进行通信,以免将API暴露给互联网?

我想不是,因为react作为JS前端在客户端执行-是吗?如果React前端不是通过PM2用作静态文件(npm run-server build),这是否还成立?

1 个答案:

答案 0 :(得分:1)

您可以通过仅允许您的React应用程序的域来实现。为此;

  1. 安装metric_type
  2. 将其添加到已安装的应用中
pip install django-cors-headers
  1. 将中间件类添加到settings.py:
 INSTALLED_APPS = (
    'corsheaders',
    ...
 )
  1. 添加您的React应用程序的域以允许它进入settings.py
   MIDDLEWARE = [  # Or MIDDLEWARE_CLASSES on Django < 1.10
       'corsheaders.middleware.CorsMiddleware',
       'django.middleware.common.CommonMiddleware',
       ...
  ]