我已经在ipad上创建了一个全屏幕的网络应用程序。只是为了澄清一下,一切都在电脑上工作正常,一切都可以从ipad上的浏览器中正常工作,只有当它作为网络应用程序全屏显示时才会出现问题。
代码很简单
$.ajax({
type :'POST',
cache :false,
data :{'t':8,
'qt':10,
'x':'Yup'},
url :'/rep/ajaxcall',
success:function(response){
alert("i'm here");
},
complete:function(){
alert("i'm not here");
},
error:function(){
alert('opps');
},
});
控制器动作
public function ajaxcall(){
echo "it worked";
}
因此代码永远不会在成功,错误或完成内执行。如果我尝试$ .ajax(...)。done()并在完成部分发出警报,那也不会触发。
我发现只有一种方法可以使这段代码正常工作。在ajax调用之后,我必须发出警报('某些东西')。然后它每次都有效。我已经在这里,论坛,苹果以及我能找到的其他地方阅读了所有不同的问题,并尝试了其他人为类似问题尝试过的所有解决方案。我没有在其他地方找到这个确切的问题。
我尝试在ajax调用之后延迟一段时间来查看警报是否延迟处理时间足以让ajax触发,但这没有任何影响。
**更新**
我在服务器的ajax函数中放了一个mail函数,除非javascript中有警报,否则它不会接收调用。
这是全屏的标题标记
<meta name="apple-mobile-web-app-capable" content="yes" />
答案 0 :(得分:0)
我遇到了类似的问题并修复了它设置从文档根文件夹到处理ajax调用的脚本的绝对路径。在我的情况下,如果设置了POST变量,则包含ajax调用的文件将包含在位于不同文件夹中的文件中。并且ajax处理文件位于另一个不同的文件夹中。在你的情况下,它必须是:
url:&#39;绝对/路径/到/ rep / ajaxcall&#39;