在ipad全屏应用程序上ajax调用未正确完成

时间:2014-11-13 15:19:07

标签: php ajax ipad yii2 iphone-standalone-web-app

我已经在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" />

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题并修复了它设置从文档根文件夹到处理ajax调用的脚本的绝对路径。在我的情况下,如果设置了POST变量,则包含ajax调用的文件将包含在位于不同文件夹中的文件中。并且ajax处理文件位于另一个不同的文件夹中。在你的情况下,它必须是:

url:&#39;绝对/路径/到/ rep / ajaxcall&#39;