如何在iOS全屏模式下(使用支持apple Mobile web app)在Jquery Mobile Ajax请求上伪造用户代理?

如何在iOS全屏模式下(使用支持apple Mobile web app)在Jquery Mobile Ajax请求上伪造用户代理?,jquery,ajax,jquery-mobile,iphone-standalone-web-app,Jquery,Ajax,Jquery Mobile,Iphone Standalone Web App,我正在用这个拔我的头发 我的应用程序运行在前端的jquerymobile(1.1.1)、jquery(1.7.2)和requireJS上。在Mobile Safari上运行应用程序(ipad1+3,iOS3+5)可以正常工作,但是如果我通过主屏幕图标使用 <meta name="apple-mobile-web-app-capable" content="yes" /> 问题: 当iOS全屏模式处于活动状态时,我如何在Javascript/Jquery中包含这样一个补丁(假装

我正在用这个拔我的头发

我的应用程序运行在前端的
jquerymobile(1.1.1)
jquery(1.7.2)
requireJS
上。在Mobile Safari上运行应用程序(ipad1+3,iOS3+5)可以正常工作,但是如果我通过主屏幕图标使用

   <meta name="apple-mobile-web-app-capable" content="yes" />
问题:

当iOS全屏模式处于活动状态时,我如何在Javascript/Jquery中包含这样一个补丁(假装用户代理)(这是否可以检测到)?此外,我很好奇这种方法是否有任何警告?似乎是错误的…

如果这是用户代理的问题,那么使用javascript根本无法解决。无法通过javascript更改用户代理。在下载javascript之前,它由应用程序(web浏览器)发送到服务器。使用javascript尝试任何技巧都不起作用,因为XMLHttpRequest标准中规定,如果脚本试图更改这些头()中的任何一个,则必须立即终止请求:

我猜这是出于安全考虑

或者,在服务器端的请求中检测用户代理,并返回为该特定用户代理工作的代码,当然,没有人想做更多的工作


您确定用户代理是否真的不同吗?如果用户代理在您不知道的情况下是不同的,我想不出为什么您自己的代码不能工作。唯一的原因可能是您使用的第三方javascript库。

如果这是用户代理的问题,那么使用javascript根本无法解决。无法通过javascript更改用户代理。在下载javascript之前,它由应用程序(web浏览器)发送到服务器。使用javascript尝试任何技巧都不起作用,因为XMLHttpRequest标准中规定,如果脚本试图更改这些头()中的任何一个,则必须立即终止请求:

我猜这是出于安全考虑

或者,在服务器端的请求中检测用户代理,并返回为该特定用户代理工作的代码,当然,没有人想做更多的工作


您确定用户代理是否真的不同吗?如果用户代理在您不知道的情况下是不同的,我想不出为什么您自己的代码不能工作。唯一的原因可能是您使用的第三方javascript库。

Ok。我担心没有简单的解决办法。让我们看看从哪里开始在服务器端。。。谢谢你!好啊我担心没有简单的解决办法。让我们看看从哪里开始在服务器端。。。谢谢你!
 protected void Page_PreInit(object sender, EventArgs e) {
     if (Request.UserAgent != null && Request.UserAgent.IndexOf("AppleWebKit", StringComparison.CurrentCultureIgnoreCase) > -1) {
        this.ClientTarget = "uplevel";
        }
      }
Accept-Charset
Accept-Encoding
Access-Control-Request-Headers
Access-Control-Request-Method
Connection
Content-Length
Cookie
Cookie2
Content-Transfer-Encoding
Date
Expect
Host
Keep-Alive
Origin
Referer
TE
Trailer
Transfer-Encoding
Upgrade
User-Agent
Via