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

时间:2011-09-10 16:06:44

标签: jquery-mobile

我的主页在这里: http://www.mydomain.com/main/main.php

我的登录页面在这里: http://www.mydomain.com/main/pages/login.php

Main.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尝试发布到错误的位置: http://www.mydomain.com/main/pages/genxml.php

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

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

这使得帖子成功,但我的数据解析失败,因为亲戚路径在主文件中用于图像之类的东西。所以不是从这里获取图像:http://www.mydomain.com/main/脚本试图从这里获取图像:http://www.mydomain.com/main/pages/

我发现有一些帖子与人有类似的问题,但我没有遇到过解决方案。我也试过阅读jquerymobile文档,jquery开发人员很可能试图在这里讨论这个问题,但我承认我并不完全理解这个页面上的所有内容: http://jquerymobile.com/demos/1.0b3/#/demos/1.0b3/docs/pages/page-navmodel.html

如果有人可以提供帮助,我会非常感激。感谢。

P.S。此问题发生在Android和Google Chrome上,但不会发生在Firefox中。

2 个答案:

答案 0 :(得分:1)

我已经创建了一个您正在尝试做的工作示例。你应该能够看到这一点,看看我做了什么。一定要检查master.js。我认为让它在你的情况下工作的关键是在“pageshow”事件中嵌套ajax调用,以确保你的baseURL已经更新。您可以在http://www.roughlybrilliant.com/stackoverflow/7372909.7z

下载该示例

View the example正在使用相对网址的weather.xml。

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

答案 1 :(得分:0)

你为什么不使用其中一个:

  1. 从登录页面重定向时使用“../main.php”,或
  2. 当您输入login.php时,请记住来自标题的UrlRefer,并使用它重定向回任何以前的页面301