【问题标题】:Nuxt.js problem with server-side API call with https使用 https 进行服务器端 API 调用的 Nuxt.js 问题
【发布时间】:2019-08-21 17:48:59
【问题描述】:

我在使用 HTTPS 时遇到 nuxt 服务器端 API 调用问题。在客户端,一切都很好,当我通过链接在客户端切换页面时,API 可以工作,但是当我按下 Ctrl + f5 并且数据将在服务器端预取时,实际上没有 API 调用,也没有提供数据。即使没有抛出任何错误,但使用普通 HTTP 一切都可以正常工作。

在我的生产服务器 nodejs 版本 - v10.9.0 对于使用通过我的 nodejs 网络托管服务提供商提供的 SNI SSL 的 HTTPS 即时通讯

这个问题类似于: https://github.com/nuxt/nuxt.js/issues/2934 除了那里提供的解决方案对我不起作用。

已编辑:

这是 axios 进入 nuxtServerInit 后我进入 store.js 的错误: '无法验证第一个证书'

编辑 2:

之后我发现:https://forum.vuejs.org/t/nuxtserverinit-with-axios-unable-to-verify-the-first-certificate/31010

我应用了扩展 axios 的插件:

插件/axios.js:

import https from 'https';

export default function ({ $axios }) {
    $axios.defaults.httpsAgent = new https.Agent({ rejectUnauthorized: false });
}

nuxt.config.js:

plugins: [
    '@/plugins/axios',
]

它现在在服务器端和客户端一样好用。但我还有另一个问题。这个解决方案安全吗?

【问题讨论】:

  • 你使用 nuxt/axios 吗?您是否尝试记录 API 调用的输出并查看其中的内容?
  • 谢谢你的建议,愚蠢的我。是的,我在 Axios 中使用 nuxt。最后我管理如何得到错误。这就是我在 store.js 中的 catch 块中得到的内容,我在服务器端调用 API:'无法验证第一个证书'
  • 检查它捆绑了所有中间证书

标签: javascript ssl https server nuxt.js


【解决方案1】:

继续foobar's 的想法:对于 Windows 操作系统,您需要在 package.json 中编写不是“导出”,而是“设置”:

set NODE_TLS_REJECT_UNAUTHORIZED=0 && nuxt --env.NODE_TLS_REJECT_UNAUTHORIZED=0

【讨论】:

    【解决方案2】:

    我发现此解决方案更易于管理:

    export NODE_TLS_REJECT_UNAUTHORIZED=0 && yarn dev --env.NODE_TLS_REJECT_UNAUTHORIZED=0
    

    它还确保它仅在开发期间运行,自签名证书最有可能出现问题。

    你也可以像这样将它添加到你的 package.json 中:

    "scripts": {
      "dev": "export NODE_TLS_REJECT_UNAUTHORIZED=0 && nuxt --env.NODE_TLS_REJECT_UNAUTHORIZED=0",
    

    作为插件

    您也可以创建一个plugins/axios.js 文件

    import https from 'https';
    
    export default function ({
      $axios,
      store
    }) {
      const agent = new https.Agent({
        rejectUnauthorized: false
      });
      $axios.onRequest(config => {
        if (process.env.dev) {
          config.httpsAgent = agent;
        }
      });
    }
    

    请务必将插件添加到您的 nuxt.config.js 文件中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-21
      • 2018-02-09
      • 1970-01-01
      • 2015-06-26
      • 1970-01-01
      • 1970-01-01
      • 2020-11-06
      相关资源
      最近更新 更多