首页 > 解决方案 > 节点服务器 Web 应用程序不想在具有移动数据的移动设备上运行,它托管到 VPS

问题描述


我的 Vue.js 网站有问题。它是一个带有 node express 前端的 vue,另一个 node express 在不同的端口上作为后端。

它在台式机和移动设备上都可以正常工作,但是在移动设备上,当我关闭 wifi 并尝试使用移动数据重新加载网站时,它无法加载。更奇怪的是,我在许多移动设备上都尝试过,其中 1/3 没有这个问题(设备不同,iphone、android、chrome、safary)

最后,在这种现象期间,当我尝试访问后端的其余 api 时,一切正常那里。所有后端和前端都托管在 VPS 服务器上。

我的网络应用程序
https://conndesk.com/

我正在使用的响应标头。

res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Credentials", true);
res.header("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization");

我用于与后端连接的配置文件

{
    "ip": "46.101.12.218",
    "api": "https://conndesk.com:444",
    "files": "https://conndesk.com:444",
    "domainName": "conndesk.com"
}

新更新!!!我试过这个,它也一样,wifi可以工作,但移动数据不行。没有 vue.js 或 express.js。当我将端口更改为与默认端口不同的端口时,在移动数据和 wifi 上都可以正常工作。看起来是服务器问题,而不是 Vue js

const https = require("https"),
    http = require("http"),
    { readFileSync } = require("fs"),
    sslPort = 443,
    port = 80;

var https_server = (req, res, next) => {
    return res.end("aaaaaaaaaaaaa");
};

var http_server = (req, res, next) => {
    return res.end("bbbbbbbbbbbbb");
};

/** HTTPS */
https
    .createServer(
        {
            key: readFileSync("/etc/letsencrypt/live/privkey.pem", "utf8"),
            cert: readFileSync("/etc/letsencrypt/live/fullchain.pem", "utf8"),
        },
        https_server
    )
    .listen(sslPort, () => {
        console.log(`Server is running at port ${sslPort}...`);
    });

/** HTTP */
http.createServer(http_server).listen(port, () => {
    console.log(`Server is running at port ${port}...`);
});

非常感谢!

标签: node.jsmobileserver

解决方案


推荐阅读