【问题标题】:I can't fetch from external API in production我无法从生产中的外部 API 获取
【发布时间】:2019-10-21 12:16:14
【问题描述】:

我想获取一些信息,但是当我尝试使用 Nginx 将其实现到服务器(Ubuntu 18.04)时,我无法获取...

  • 放置证书以启用 HTTPS 到我的域。
  • 使用包含完整 url 到 API 的变量创建一个 .env(因为我在开发中使用代理)
  • 在请愿书中添加一些标题
  • 尝试更改nginx中的配置

但没什么...我的应用程序只能在 localhost 中运行

axios.get(process.env.REACT_APP_API_URL) ...

浏览器控制台(Safari):

Access-Control-Allow-Origin 不允许Origin https://mysubdomain.com

由于访问控制检查,XMLHttpRequest 无法加载 https://mysubdomain.com

加载资源失败:Access-Control-Allow-Origin 不允许 Origin https://mysubdomain.com

【问题讨论】:

    标签: reactjs nginx axios ubuntu-18.04 dev-to-production


    【解决方案1】:

    您的服务器需要返回以下标头值

    Access-Control-Allow-Origin: *
    

    这意味着任何人都可以连接到 API。

    解决方法

    转到 chrome 文件夹。

    chrome.exe --user-data-dir="<Some directory name to store temporary chrome data>" --disable-web-security
    

    【讨论】:

    • 好的,让我检查一下
    【解决方案2】:

    我不是 nginx 方面的专家,但这很有效!

    我在 /etc/nginx/sites-available/mysite 中编辑我的站点文件,如下所示:

    
    location /anyAppLocation/ {
    
      proxy_method GET;
      proxy_pass_request_headers on;
      proxy_pass https://api.site.com;
      proxy_redirect default;
    
    }
    
    

    【讨论】:

      猜你喜欢
      • 2019-05-25
      • 1970-01-01
      • 2021-07-12
      • 1970-01-01
      • 1970-01-01
      • 2012-08-30
      • 1970-01-01
      • 2013-10-20
      • 2017-07-06
      相关资源
      最近更新 更多