因此,我目前遇到了尝试在 Jelly Bean 的官方库存 Android 浏览器上打开我们的网络应用程序的问题。我不知道我能详细说明这个问题,但我会尽力而为。
对于运行 ICS 或更早版本的设备,在任何浏览器(stock、firefox、chrome)上,我们都可以输入我们 Web 应用程序的 URL,进入登录页面,登录并查看一切正常。
对于运行 Jelly Bean(4.1 和 4.2)的设备,如果我们在stock browser中输入 url ,我们会得到以下信息:
但是,如果我们使用Chrome或Firefox,就可以了。
我们收到此错误很奇怪,因为我已经在我们的网络上进行了身份验证,我只尝试访问登录屏幕,因此不需要其他身份验证。
我们的 Web 应用程序从服务器获取信息,这在服务器端似乎不是问题。
因此,罪魁祸首似乎是 Jelly Bean 中的库存浏览器,我尝试查找库存 Web 浏览器从 ICS 到 Jelly Bean 是否有任何变化,但我找不到任何东西。
有没有人提出过这样的问题,或者是否知道 Jelly Bean 上的库存 android 浏览器发生了任何重大变化(可能与安全性有关?)?
编辑:这个网络应用程序在外部不可用。目前我们只在内部进行了测试,您必须连接到我们的内部网络。
EDIT2:刚刚检查了海豚浏览器,同样的事情发生了......所以我现在真的迷路了,因为我更不确定它与 4.1+ 股票浏览器有关。另外,让我感到更加失落的另一件事是,我刚刚在 4.1.2 上查看了 Galaxy SIII 的股票浏览器,页面加载正常......
EDIT3:好消息,我们的开发人员已经进行了进一步调查,显然这是问题所在:
默认浏览器在请求中添加了一个额外的标头,使我们的服务器认为它是一个 ajax 请求并拒绝它,因为请求的其余部分实际上不是一个 ajax 请求......这个错误是因为 Android 4.1+ 中的默认浏览器引起的已向所有请求“X-Requested-With: com.android.browser”添加了一个新标头。
所以我猜 Dolphin HD 浏览器也能做到这一点......正在做进一步的调查,所以会回到这个问题上并给出答案