Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery mobile Jquery移动页面导航会破坏基本url并导致主页上的ajax失败_Jquery Mobile - Fatal编程技术网

Jquery mobile Jquery移动页面导航会破坏基本url并导致主页上的ajax失败

Jquery mobile Jquery移动页面导航会破坏基本url并导致主页上的ajax失败,jquery-mobile,Jquery Mobile,我的主页在这里: 我的登录页面在这里: php使用ajax获取数据以响应tap事件。在我导航到登录页面,然后返回主页之前,这一切都很正常。在进入登录页面并返回之后,相关路径变得混乱,以至于ajax在错误的位置查找服务器文件 以下是ajax: 1. function get_more_data() { 2. more_data_index += 15; 3. var formData = "index=" + more_data_index; 4.

我的主页在这里:

我的登录页面在这里:

php使用ajax获取数据以响应tap事件。在我导航到登录页面,然后返回主页之前,这一切都很正常。在进入登录页面并返回之后,相关路径变得混乱,以至于ajax在错误的位置查找服务器文件

以下是ajax:

   1. function get_more_data() {
   2.    more_data_index += 15;
   3.    var formData = "index=" + more_data_index;
   4.     $.ajax({
   5.       type: "POST",
   6.       url: "genxml.php", // file located here:  http://www.mydomain.com/main/genxml.php
   7.       cache: false,
   8.       data: formData,
   9.       dataType: "xml",
  10.       success: showFiles3,
  11.       error: onErrorMoreData
  12.     });
  13. }
在我从login.php导航回main.php后,ajax会尝试发布到错误的位置:

(genxml.php不在“pages”子目录中;它在主目录中。)

我尝试更新ajax以使用绝对路径: url:“http://www.mydomain.com/main/genxml.php"

这使得post成功了,但是我的数据解析失败了,因为主文件中的相关路径用于图像之类的内容。因此,不是从这里获取图像:脚本试图从这里获取图像:

我发现有一些帖子有类似的问题,但我还没有找到解决办法。我还尝试阅读了jquerymobile文档,jquery开发人员很可能试图在这里讨论这个问题,但我承认我并不完全理解这一页上的所有内容:

如果有人能帮忙,我会非常感激。谢谢


另外,这个问题发生在Android和Google Chrome上,但在Firefox上没有

您为什么不使用以下选项之一:

  • 从登录页面重定向回时使用“./main.php”,或
  • 请记住,当您输入login.php时,从标题中引用URLReference,并使用它重定向回具有301的任何上一页

  • 我已经创建了一个你正在尝试做的工作示例。你应该可以看看这个,看看我做了什么。确保签出master.js。我认为,在您的情况下使其工作的关键是将ajax调用嵌套在“pageshow”事件中,以确保您的baseURL已经更新。您可以在以下位置下载示例:

    在实际操作中,它将weather.xml与相对URL一起拉入

    $("div").live("pageshow", function(){
        var $page = $(this);
        get_more_data();
    });
    

    最后,我对所有ajax查询和img src属性都使用了绝对地址。这真的很痛苦。我很想知道如何在jquery mobile框架中成功地使用相对路径。如果其他人这样做,我建议使用javascript变量,这样您只需要在一个位置编辑路径。i、 e.:var base path=“”;我想我也有同样的问题。在Chrome的开发者工具窗口中查看DOM,同时单击启用ajax的链接,我看到url从更改为,这是正确的,但随后它又更改回。后续导航失败。这一定是一个常见的问题,我很惊讶没有解决。像你一样,我不确定我是否理解你提到的导航网页。你已经创建了两个单独的页面,每个页面上都有JQM。JQM有一个ajax系统,允许您从只包含页面内容的文件中提取HTML。这种基本url问题发生在后一种情况下。不过,使用jquery mobile代码对每个页面进行编码是一种最佳做法,因为现在库中存在url重写,地址栏中显示的url将仅反映刚刚加载的页面(如果您的系统支持)。这样可以保持URL的干净,并更好地添加书签。因此,如果用户刷新页面,它将只加载最新的页面。而不是像您预期的那样,在基本页面之后是ajaxed页面。将jquery mobile保留在每个预期的移动页面上也可以确保无论用户的入口点是什么,他们都能获得正确的体验。此外,这允许真正的渐进式增强,因为每个页面都可以独立运行,所以只有B、C类和更低级别支持的系统仍然可以查看您的内容。这是否进一步澄清了问题?在每个页面上包含jquery移动代码没有不良影响,第一个页面之后的页面仍将由Ajax加载。在每个页面上包含库不会停止该页面或任何其他页面的Ajax加载。只是让它更加防弹。而且,这不是这个解决方案有效的原因。我延迟了Ajax的加载,直到页面显示启动,这修复了我认为对您来说是一个时间问题。因为,当以编程方式重定向时,您无法知道当前的基本目录是什么,因为它在每次changePage调用中都会不断变化。