node.js - 节点服务器 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}...`);
});
非常感谢!
解决方案
推荐阅读
- ruby-on-rails - 用于 S3 私有文件的 ActiveStorage
- sql - Postgresql 选择计数与连接
- jsf - 如何将复合组件 ID 传递给方法?
- java - Eclipse 插件开发:如何访问在 Eclipse 编辑器中编写的代码
- jquery - jquery - 使用 ajax 提交文件
- jquery - jquery检测div内的变化获取html并设置为输入值
- python-2.7 - 下面实现knn的代码有什么问题?
- ios - 在某些情况下无法创建圆柱体 - Arkit
- c - 使用 C 语言在树莓派相机模型中捕获视频
- r - ggplot:使用 scale_fill_gradient 获取离散图例