用postman发请求能进后端接口,为何真机测试不行

来源:7-4 登录注册前后端联调

慕桂英5534918

2025-08-05

图片描述

图片描述

如图,在postman 用ip访问后端接口能进去,但真机调试不行,我真没看出前端的ip和参数,请求方式等哪有问题

图片描述

图片描述

真机调试还是没把请求发给后端

/**
 * 后端服务发布的url地址
 */
serverUrl: 'http://192.168.0.6:8080',
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
	<title></title>
	<script src="js/mui.min.js"></script>

	<link rel="stylesheet" type="text/css" href="css/registLogin/util.css">
	<link rel="stylesheet" type="text/css" href="css/registLogin/main.css">

	<script type="text/javascript" charset="utf-8">
		mui.init();
	</script>

	<style>
		.p-t-85 {
			padding-top: 10px;
		}
		
		.p-b-70 {
			padding-bottom: 35px;
		}
		
		.m-t-85 {
			margin-top: 15px;
		}
		
		.container-login100 {
			padding: 25px;
		}
		/*toast信息提示*/
		
		.mui-toast-container {
			bottom: 50% !important;
		}
		.mui-toast-message {
			opacity: 0.6;
			color: #fff;
			width: 180px;
			padding: 70px 5px 10px 5px;
		}
	</style>
</head>

<body>

	<div class="mui-content">
		<div class="container-login100">
			<div class="wrap-login100 p-t-85 p-b-20">
				<form id="userform">
					<span class="login100-form-title p-b-70">
						<h5>Netty 实战</h5>
					</span>
					<span class="login100-form-avatar">
						<img id="img_login_face" src="css/registLogin/arrow.jpg" alt="风间影月">
					</span>

					<div class="wrap-input100 validate-input m-t-85 m-b-35">
						<input class="input100" type="text" id="username" name="username" placeholder="用户名">
						<span class="focus-input100"></span>
					</div>

					<div class="wrap-input100 validate-input m-b-50">
						<input class="input100" type="password" id="txt_password" name="password" placeholder="密码">
						<span class="focus-input100"></span>
					</div>
					<div class="container-login100-form-btn">
						<button type="submit" id="registOrLogin" class="login100-form-btn">
							登录/注册1
						</button>
					</div>
				</form>
				
			</div>
		</div>
	</div>
	<script type="text/javascript" src="js/app.js" ></script>
	<script type="text/javascript">
		
		mui.plusReady(function() {
			
			// 判断用户是否注册登录过,如果本地内存有全局的用户对象,此时直接跳转到首页
			var userInfo = app.getUserGlobalInfo();
			if (userInfo != null) {
				// 页面跳转
				mui.openWindow("index.html", "index.html");
			}
			
			var userform = document.getElementById("userform");
			var username = document.getElementById("username");
			var txt_password = document.getElementById("txt_password");
			
			userform.addEventListener("submit", function(e){
				
				// ==== 必须始终阻止默认行为 ====
				    e.preventDefault();
				
				// 判断用户名是否为空,如果为空则让其获得焦点
				if (!app.isNotNull(username.value)) {
					// 获取焦点
					username.focus();
				} else if (!app.isNotNull(txt_password.value)) {
					// 获取焦点
					txt_password.focus();
				} else {
					// 判断用户名和密码的长度,进行限制
					if (username.value.length > 12) {
						app.showToast("用户名不能超过12", "error");
						return false;
					} else if (txt_password.value.length > 12) {
						app.showToast("密码不能超过12", "error");
						return false;
					}
					
					// 获取每台手机的唯一cid
					var cid = plus.push.getClientInfo().clientid;
					
					console.log("请求地址:", app.serverUrl + "/u/registOrLogin");
					// 与后端联调
					mui.ajax(app.serverUrl + "/u/registOrLogin",{
						data:JSON.stringify({
							username:username.value,
							password:txt_password.value,
							cid: cid
						}),
						dataType:'json',//服务器返回json格式数据
						type:'post',//HTTP请求类型
						timeout:10000,//超时时间设置为10秒;
						headers:{'Content-Type':'application/json'},	              
						success:function(data){
							//服务器返回响应,根据响应结果,分析是否登录成功;

// console.log(JSON.stringify(data));

							username.blur();
							txt_password.blur();
							
							if (data.status == 200) {
								// 登录或者注册成功之后,保存全局用户对象到本地缓存
								var userInfoJson = data.data;
								app.setUserGlobalInfo(userInfoJson);
								
								// 页面跳转
								mui.openWindow("index.html", "index.html");
							} else {
								app.showToast(data.msg, "error");
							}
						},
						error: function(xhr, type, err) {
						        console.error("❌ 请求失败:", type, err);
						        app.showToast("请求失败: " + type, "error");
						    }
					});
					
				}
				
				
				// 阻止默认时间,阻止默认表单提交
				e.preventDefault();
			});
		})
		
	</script>

</body>

@CrossOrigin(origins = “", allowedHeaders = "”)
@RestController
@RequestMapping(“u”)
public class UserController {

@Autowired
private UserService userService;

@Autowired
private FastDFSClient fastDFSClient;

/**
 * @Description: 用户注册/登录
 */
@PostMapping("/registOrLogin")
public IMoocJSONResult registOrLogin(@RequestBody Users user) throws Exception {
	
	// 0. 判断用户名和密码不能为空
	if (StringUtils.isBlank(user.getUsername()) 
			|| StringUtils.isBlank(user.getPassword())) {
		return IMoocJSONResult.errorMsg("用户名或密码不能为空...");
	}
	
	// 1. 判断用户名是否存在,如果存在就登录,如果不存在则注册
	boolean usernameIsExist = userService.queryUsernameIsExist(user.getUsername());
	Users userResult = null;
	if (usernameIsExist) {
		// 1.1 登录
		userResult = userService.queryUserForLogin(user.getUsername(), 
								MD5Utils.getMD5Str(user.getPassword()));
		if (userResult == null) {
			return IMoocJSONResult.errorMsg("用户名或密码不正确..."); 
		}
	} else {
		// 1.2 注册
		user.setNickname(user.getUsername());
		user.setFaceImage("");
		user.setFaceImageBig("");
		user.setPassword(MD5Utils.getMD5Str(user.getPassword()));
		userResult = userService.saveUser(user);
	}
	
	UsersVO userVO = new UsersVO();
	BeanUtils.copyProperties(userResult, userVO);
	
	return IMoocJSONResult.ok(userVO);
}

server.port=8080

老师,能不能帮我看看ip,url哪有问题,我自己实在找不出来了,还是说ip,url没问题,问题出在其他地方,那究竟哪有问题呢?真机调试就没办法看到前端控制台信息了吗?

写回答

1回答

风间影月

2025-08-05

app.serverUrl 前端打印看看是啥,有没有可能没有数据。另外看一下hbuikder控制台有没有报错信息。现在的情况其实就是无法调用,大概率就是前端的问题了

0
0

Netty+Spring Boot仿微信-全栈开发高性能后台及客户端

SpringBoot/Netty+MUI全栈开发 同时搞定后台+ Android&iOS

1500 学习 · 693 问题

查看课程