从零开始写APP-跨域问题

130 阅读1分钟

我是一名java工程师。 咱写点后端业务代码那是手拿把掐,可这前端的东西可没咋搞过。html,javascript都还好说,css咱真的不会啊。 可心里有点创意,想开发个app,那么就必须硬着头皮学习,实战了。 咱开发用的是HBuilder,使用uni-app前端应用的框架,写了几行代码,就调试一下,可没调试几下,就出问题了。

                         uni.request({
				 	url:'http://172.18.62.70:8080/abc/rateLimit',
					method:'GET',
					timeout: 10000, // 设置超时时间为 10 秒
					sslVerify:false,
				 	success:(res) =>{
				 		console.log('请求成功',res.data);
				 	},
					fail: (err) => {
					    console.log('请求失败', err);
					},
					complete: () => {
					    console.log('请求完成');
					}
				 	
				 });

接口的返回结果死活打印不出来,打出来的是请求失败。 多方尝试下发现内置浏览器可以打印出请求成功,外部浏览器是失败。 网上搜索了下发现是跨域了,内置浏览器做了处理,所以不会有问题。 在Controller上加上@CrossOrigin(origins = "*")注解,OK问题解决。

总结:

跨域问题是浏览器为了保护用户的信息安全,实施了同源策略(Same-Origin Policy),即只允许页面请求同源(相同协议、域名和端口)的资源,当 JavaScript 发起的请求跨越了同源策略,即请求的目标与当前页面的域名、端口、协议不一致时,浏览器会阻止请求的发送或接收。 哎呀,对跨域的理解咱又加深了一点点。