【问题标题】:How to make https work at nodejs and vue.js如何使 https 在 nodejs 和 vue.js 上工作
【发布时间】:2021-03-23 00:14:27
【问题描述】:

我有一个用 Laravel 和 Vue.js 编写的网站,也使用了 nodejs。当我尝试使用http协议进入站点时,一切都很好,当我尝试进入https协议时,一半的站点无法加载,并且在控制台中出现错误:

Access to XMLHttpRequest at 'https://example.com:8443/socket.io/?EIO=3&transport=polling&t=NPIJFIo' from origin 'https://example.com' has been blocked by CORS policy: No 'Access- Control-Allow-Origin 'header is present on the requested resource.

重定向到 https 是在 nginx 本身上配置的,但我不能在 nodejs 上这样做。我也无法理解,如何更正将 ssl 证书路径添加到我的 app.js。

我的 app.js:

const app = require('express')(),
server = require('https').createServer(app),
Redis = require('redis'),
RedisClient = Redis.createClient(),
io = require('socket.io')(server),
cors = require('cors'),
axios = require('axios');


const myArgs = process.argv.slice(2);
const domain = myArgs[0];
const SECRET_KEY = 'cZN^ZH8)mu~9e,>6M>3qKV=Ar^fFF,7/';

axios.defaults.baseURL = 'https://example.com/api/bot/';

server.listen(8081);

app.use(cors({
    origin: true,
    credentials: true
}));

我做错了什么?我将不胜感激。

【问题讨论】:

    标签: node.js vue.js socket.io


    【解决方案1】:

    这是CORS的问题,你需要为socket.io服务器添加cors选项。

    请参阅Handling CORS 了解 Socket.io。

    io = require('socket.io')(server, {
      cors: {
        origin: '*'
      }
    });
    

    【讨论】:

    • 改变你的写作方式,没有任何改变:(
    • 删除cors包使用并尝试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    • 2021-06-18
    • 1970-01-01
    • 2017-06-08
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多