使用angular web客户端从移动设备发出http请求
我正在编写一个web应用程序,它主要由移动设备在其web浏览器中使用。应用程序的一部分将从用户的设备发送当前lat和long,或从ip地址发送估计lat和long。当用户按下send时,在angular应用程序中,我向api发出http get请求,该api将从IP生成lat和long信息,然后在该承诺中,我通过post请求将该信息发送到后端 问题是,在桌面浏览器上,应用程序按预期工作。在移动设备上,似乎没有执行http请求,但是我确信正在使用使用angular web客户端从移动设备发出http请求,angular,Angular,我正在编写一个web应用程序,它主要由移动设备在其web浏览器中使用。应用程序的一部分将从用户的设备发送当前lat和long,或从ip地址发送估计lat和long。当用户按下send时,在angular应用程序中,我向api发出http get请求,该api将从IP生成lat和long信息,然后在该承诺中,我通过post请求将该信息发送到后端 问题是,在桌面浏览器上,应用程序按预期工作。在移动设备上,似乎没有执行http请求,但是我确信正在使用window.alert()进行调试来按下按钮 请看
window.alert()
进行调试来按下按钮
请看一下代码,让我知道你们的想法
我尝试过标准调试,但似乎找不到一个以前提出的问题能够满足这个问题
home.component.ts
submitForm(){
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
})
}
this.http.get('http://ip-api.com/json').subscribe(response=>{
this.http.post("apiendpoint", response, httpOptions).subscribe(res=>{
console.log(res)
})
})
}
home.component.html
<div class="col">
<input
id="submitButton"
(click)="submitForm()"
class="btn btn-block btn-success mb-2"
value="Submit"
/>
</div>
我希望执行get请求,然后将响应发布到api后端。所有发生的事情就是用户点击按钮。我有相同的错误-Angular PWA在除移动chrome以外的所有设备上都能正常工作。除了我用钥匙斗篷。如果您使用KeyClope或其他SSO解决方案,可能您需要这样做 在控制台中根本没有对后端的请求。但后来我注意到,当用户只登录时,它会复制 就我而言,问题出在钥匙斗篷上。默认情况下,KeyClope适配器拦截所有请求,以便将借阅添加到每个请求中。若适配器无法获取令牌,拦截器将返回空订阅
默认情况下,chrome会压缩一些数据以减少流量,因此可以作为代理。因此,我将跨源通配符“*”添加到KeyClope领域。它解决了我的问题(但安全性很弱:)。我有相同的错误-Angular PWA在除移动chrome以外的所有设备上都能正常工作。除了我用钥匙斗篷。如果您使用KeyClope或其他SSO解决方案,可能您需要这样做 在控制台中根本没有对后端的请求。但后来我注意到,当用户只登录时,它会复制 就我而言,问题出在钥匙斗篷上。默认情况下,KeyClope适配器拦截所有请求,以便将借阅添加到每个请求中。若适配器无法获取令牌,拦截器将返回空订阅
默认情况下,chrome会压缩一些数据以减少流量,因此可以作为代理。因此,我将跨源通配符“*”添加到KeyClope领域。它解决了我的问题(但安全性较弱:)。您需要在真实设备上调试才能看到问题。将设备连接到计算机,使用Chrome进行远程调试,并检查网络选项卡。查看您是否发出请求的具体情况。您的服务器和/或“”很可能无法从移动设备访问,或者请求被CORS阻止。您必须按照Ahmad所说的进行调试,或者千方百计向订阅服务器抛出错误回调,并以某种方式显示错误消息。您需要在实际设备上进行调试才能看到问题。将设备连接到计算机,使用Chrome进行远程调试,并检查网络选项卡。查看您是否发出请求的具体情况。您的服务器和/或“”很可能无法从移动设备访问,或者请求被CORS阻止。您必须按照Ahmad所说的进行调试,或者千方百计地向订阅服务器抛出错误回调,并以某种方式显示错误消息。