同个前端页面,在手机端和PC端打开,访问到的资源有可能不是同一个

news2025/1/17 3:12:42

记录项目遇到的问题,问题表现为:

1、用手机端和PC端打开同一个前端页面,通讯到达的后端服务却不是同一个

排查:

1、确认手机端和PC端打开后,实际访问的前端资源并不是同一个

2、手机端配置的socket端口有误,所以没有到达正确的后端服务

一、例

1、前端页面访问地址:http://127.0.0.1:8229/xxx/index_websocket.html

2、在PC端打开,实际访问到的是:index_websocket.html

3、在手机端打开,实际访问到的是:index_app.html

4、通过查看前端代码,手机端打开时的跳转页面是可以自己定义的,案例代码如下

function getPgjs(){
	var agent = navigator.userAgent.toLowerCase();
	var res = agent.match(/android/);
	if(res == "android")
		return 'android';
	res = agent.match(/iphone/);
	if(res == "iphone")
		return "iphone";
	res = agent.match(/ipad/);
	if(res == "ipad")
		return "ipad";
	res = agent.match(/windows/);
	if(res == "windows")
		return "wp";
	return "pc";
}
if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent) || getPgjs() == 'ipad') {
	//wap
	var questionMsg = decodeURI(getQueryString('question'));//带入问题并且中文转码
	if(questionMsg){
		window.location.href = "./index_app.html?question="+questionMsg;
	}else{
		window.location.href = "./index_app.html";
	}
    
} else {
	//pc
}
 var Sys = {};
    var ua = navigator.userAgent.toLowerCase();
    var s;
    (s = ua.match(/rv:([\d.]+)\) like gecko/)) ? Sys.ie = s[1] :
    (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
    (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
    (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
    (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
    (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
    if (Sys.ie){
		if(Sys.ie<10.0){
			var questionMsg = decodeURI(getQueryString('question'));//带入问题并且中文转码
			if(questionMsg){
				window.location.href = "./index_socket.html?question="+questionMsg;
			}else{
				window.location.href = "./index_socket.html";
			}
		}
	}

二、知识点

通讯方面

1、手机端的通讯,可以是Socket、HTTP

2、PC端的通讯,可以是WebSocket、Socket、HTTP

3、查看Socket、HTTP通信信息
在这里插入图片描述
 
4、查看websocket通信信息
在这里插入图片描述

问题的定位

1、出现问题时,先确认PC端、手机端各自的通讯配置是否有误,确保消息的通讯能到达正确的后端服务

2、PC端应检查:WebSocket、Socket、HTTP等配置的地址及端口号

3、手机端应检查:Socket、HTTP等配置的地址及端口号

在PC端以手机模式打开并调试前端页面

1、在浏览器输入需要调整的前端页面访问地址

2、按F12进入开发者调试页面

3、点击以下按钮就能以手机模式访问该前端页面
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/557095.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图片模块封装:Glide高级使用+使用设计模式图片框架封装+Bitmap尺寸压缩和质量压缩+Bitmap加载大图长图

图片模块封装&#xff1a;Glide高级使用使用设计模式图片封装Bitmap尺寸压缩和质量压缩Bitmap加载大图长图 一.如何更换图片框架二.Glide配置1.依赖&#xff1a;2.缓存配置&#xff1a;3.网络配置&#xff1a;glide默认使用httpUrlConnection完成网络请求&#xff0c;可以改成o…

Python学习笔记——《吴恩达Machine Learning》逻辑回归例程

文章目录 逻辑回归和线性回归的区别&#xff1f;正则化逻辑回归逻辑回归中的梯度下降&#xff1a; 模型预测案例解决二分类问题&#xff1a;不同的 λ \lambda λ会产生不同的分类结果: 逻辑回归和线性回归的区别&#xff1f; 逻辑回归可以理解为线性回归的一个plus版&#xf…

架构-软件工程模块-3

系统测试 #mermaid-svg-cpVF4noxB0estLWd {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-cpVF4noxB0estLWd .error-icon{fill:#552222;}#mermaid-svg-cpVF4noxB0estLWd .error-text{fill:#552222;stroke:#552222;}#…

【Python】判断语句 ③ ( if elif else 语句 | 语法简介 | 代码示例 )

文章目录 一、 if elif else 语句语法二、 代码示例 一、 if elif else 语句语法 在开发场景中 , 经常用到 多条件判定 , 初次判定 , 先进行 条件 1 判定 , 如果 条件 1 满足 则执行 条件 1 对应动作 , 如果 条件 1 不满足 , 则 判定 条件 2 是否满足 , 如果 条件 2 满足 则 …

linux操作系统【进阶完整版】

文章目录 基础命令tailvimsystemctl 用户和组/权限su/sudo创建删除ls -lchmodchown 实用操作快捷键软件安装软链接时区与时间date修改时区 ip、主机名网络传输请求端口 进程管理主机状态监控系统资源占用磁盘信息监控网络状态监控 环境变量上传和下载压缩和解压tarzip/unzip 安…

一、尚医通上传医院接口

文章目录 一、上传医院接口1、集成mongodb1.1添加依赖1.2添加配置 2、添加医院基础类2.1 添加model2.2 添加Repository2.3 添加service接口及实现类2.4 添加controller 3、上传医院3.1 接口数据分析3.2 添加service接口3.3 添加repository接口3.4 添加controller接口3.5 添加帮…

chatgpt赋能Python-python_errno2

Python errno2: 深入了解错误代码并解决问题 当你在使用 Python 进行编程时&#xff0c;不可避免地会遇到一些错误。这些错误通常会被分配一个错误代码&#xff0c;也称为errno。errno2是Python中的一个特定错误代码类型。在本文中&#xff0c;我们将深入了解errno2及其在Pyth…

chatgpt赋能Python-python_errno

Python errno: 什么是errno和它在Python中的应用 在Python编程中&#xff0c;errno是一个非常重要的概念&#xff0c;用于表示系统调用或库函数调用返回的错误代码。在本文中&#xff0c;我们将深入探讨errno是什么&#xff0c;如何在Python中使用它&#xff0c;以及一些常见的…

第3章 TensorFlow进阶

文章目录 第3章 TensorFlow进阶3.1 TensorFlow 的计算模型3.1.1 计算图的工作原理3.1.2 在不同计算图上定义和使用张量进行计算3.2.1 在 GPU 上执行简单的算术运算 3.2 TensorFlow 的嵌入层3.3 TensorFlow 的多层3.4 TensorFlow 实现损失函数3.4.1 softmax 损失函数3.4.1 稀疏矩…

Linux【工具 02】OpenStreetMap数据处理工具OSMCTools下载安装使用举例(osmconvert命令说明)如何获取区域边界说明

OSMCTools安装使用实例 1.Tools2.官网安装步骤3.实际安装步骤3.1 环境3.2 步骤 4.工具使用实例 OpenStreetMap的下载地址&#xff1a;Geofabrik Download Server。 OSMCTools的GitHub地址&#xff1a;https://github.com/ramunasd/osmctools Windows操作系统&#xff0c;可以…

chatgpt赋能Python-python_erf

Python Erf函数 什么是Erf函数&#xff1f; Erf函数也被称为误差函数&#xff0c;是统计学中的一种概率函数&#xff0c;它表示一个随机变量在平均值附近的偏差程度。Erf函数在解决科学问题中非常有用&#xff0c;尤其是在概率论、统计学、物理学等领域。 在Python中如何使用…

【自然语言处理】 - 作业1: Word2Vec及TransE实现

课程链接: 清华大学驭风计划 代码仓库&#xff1a;Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的&#xff0c;其分为四门课&#xff0c;包括: 机器学习(张敏教授) &#xff0c; 深度学习(胡晓林教授), 计算…

Java中的equals和hashCode

目录 equals hashCode equals和hashCode之间的关系 总结 equals equals方法是Object类中用于检测两个对象是否相同的方法&#xff0c;Object类中实现的是两个对象引用是否相同的方法&#xff0c;看以下Object类中代码&#xff1a; public boolean equals(Object obj) {ret…

LInux线程

Linux线程介绍 1、进程与线程&#xff1a; 典型的UNIX/Linux进程可以看成只有一个控制线程&#xff1a;一个进程在同一时刻只做一件事情。有了多个控制线程后&#xff0c;在程序设计时可以把进程设计成在同一时刻做不止一件事&#xff0c;每个线程各自处理独立的任务。 进程是…

【自然语言处理】 - 作业2: seq2seq模型机器翻译

课程链接: 清华大学驭风计划 代码仓库&#xff1a;Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的&#xff0c;其分为四门课&#xff0c;包括: 机器学习(张敏教授) &#xff0c; 深度学习(胡晓林教授), 计算…

Python地理空间分析快速入门

地理空间数据描述了地球表面上的任何物体或特征。 常见的例子包括&#xff1a; 品牌应该在哪里开设下一家门店&#xff1f;天气如何影响区域销售&#xff1f;乘车的最佳路线是什么&#xff1f;哪个地区受飓风影响最严重&#xff1f;冰盖融化与碳排放有何关系&#xff1f;哪些地…

chatgpt赋能Python-python_dog

Python Dog: 一个好玩的机器人狗 Python Dog是一个由Python编程语言编写的机器人狗。它是一个有趣且有用的工具&#xff0c;可以帮助您学习Python编程&#xff0c;并了解如何通过Python编写和控制机器人。在本文中&#xff0c;我们将介绍Python Dog的功能&#xff0c;并讨论为…

Leetcode每日一题——“用栈实现队列”

各位CSDN的uu们你们好呀&#xff0c;今天&#xff0c;小雅兰的内容是用栈实现队列&#xff0c;这和小雅兰的上一篇博客“用队列实现栈”好像有点点关系噢&#xff0c;事实上&#xff0c;也确实是这样的&#xff0c;下面&#xff0c;让我们进入Leetcode的世界吧&#xff01;&…

RK3399平台开发系列讲解(网络篇)Linux 发送网络包流程

🚀返回专栏总目录 文章目录 一、发送网络包流程图二、发送网络包步骤沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将详细介绍Linux网络包发包流程。 一、发送网络包流程图 二、发送网络包步骤 VFS 层:write 系统调用找到 struct file,根据里面的 file_oper…

chatgpt赋能Python-python_end___t_

Python中的end\t’介绍 Python是一种非常流行的编程语言&#xff0c;它在各种领域中得到广泛应用。与许多其他编程语言不同的是&#xff0c;Python中提供了一种方便的 way来创建格式化字符串。一个常见的方法是使用end‘\t’。 在本文中&#xff0c;我将介绍Python中的end‘\…