因此,我目前遇到了尝试在Jelly Bean的官方股票Android浏览器上打开我们的网络应用程序的问题。我不知道我能详细解决这个问题,但我会尽我所能。
对于运行ICS或更早版本的设备,在任何浏览器(stock,firefox,chrome)上,我们都可以输入我们的网络应用程序的URL,进入登录页面,登录并查看所有内容。
对于运行Jelly Bean(4.1和4.2)的设备,如果我们在股票浏览器中输入网址,我们会收到以下信息:
但是,如果我们使用 Chrome 或 Firefox ,则可以。
我们收到此错误很奇怪,因为我已经在我们的网络上进行了身份验证,并且我只尝试访问登录屏幕,因此不需要其他身份验证。
我们的网络应用程序从服务器获取信息,这似乎不是服务器端的问题。
所以看起来罪魁祸首是Jelly Bean中的股票浏览器,我试着查看从ICS到Jelly Bean的股票网页浏览器是否有任何变化,但我找不到任何东西。
有没有人想出这样的问题,或者是否知道在Jelly Bean上对股票Android浏览器做出的任何重大改变(可能与安全有关?)?
编辑:此网络应用程序无法在外部使用。目前,我们仅在内部测试了您必须连接到我们内部网络的位置。
EDIT2:刚刚使用Dolphin Browser进行了检查,发生了同样的事情......所以我现在真的迷失了,因为我更不确定它与4.1+股票浏览器有什么关系。另外,让我感到更失落的其他东西是,我刚刚在4.1.2上检查了星系SIII的股票浏览器并且页面加载得很好......
EDIT3:好消息,我们的开发人员已经做了进一步的调查,显然这就是问题所在:
默认浏览器为请求添加了一个额外的标头,使我们的服务器认为它是一个ajax请求并拒绝它,因为请求的其余部分实际上不是ajax请求...这个错误是由于默认浏览器引起的Android 4.1+为所有请求添加了一个新标题“X-Requested-With:com.android.browser”。
所以我猜测Dolphin HD浏览器也是这样做的......正在进行进一步的调查,以便回到这个并提出答案
答案 0 :(得分:0)
根据我们开展研究的开发人员的说法:
默认浏览器会为我们的请求添加额外的标头 服务器认为这是一个ajax请求并拒绝它,因为剩下的 请求实际上不是ajax请求...
导致此错误 因为Android 4.1+中的默认浏览器添加了新标头 所有请求“X-Requested-With:com.android.browser”。
目前我们无法花费更多时间通过此问题的代码找到合适的工作...所以我们决定将此记录为已知问题并建议人们使用Chrome,如果他们有4.1 +设备