返回jQuery站点的主页时无法访问脚本



好吧,我从一开始就重新发布了此内容。我对此感到非常沮丧,我将只放弃JQM。这不应该很难。

我的网站结构:

OUI/
index.php
js/
pages/
images/

在我的index.php页面上,我只有登录的两行形式,我在 http://localhost/~me/OUI/

<? session_start();
?><!DOCTYPE HTML>
<html>
<head>
<meta name="viewport" content="width=device-width, user-scalable=false,initial-scale=1;">
<meta name="apple-mobile-web-app-capable" content="yes">
<link rel="stylesheet" href="js/jquery.mobile-1.4.0.min.css">
<link rel="stylesheet" type="text/css" href="css/jqm-datebox.min.css" /> 
<script src="js/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="js/jquery.mobile-1.4.0.min.js" type="text/javascript"></script>
<script type="text/javascript" src="js/jqm-datebox.comp.datebox.min.js"></script>
<script src="js/mainsite.js" type="text/javascript"></script>

<link rel="stylesheet" href="css/main.css">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>OUI CHEF</title>
</head>
<body style="background-image:url(media/kitchen.jpg)">

    <div data-role="page" id="loginarea">
    <div data-role="content" id="maincontentarea2"> 
    <img src="media/OUIChef.png" style="margin-top:75px" id="mainimage">
    <div data-role="fieldcontain" class="ui-hide-label">
    <label for="username">Username:</label>
    <input type="text" name="username" id="username" value="" style="text-align:center" placeholder="Username"/><BR>
<label for="username">Password:</label>
    <input type="password" name="password" id="password" value="" style="text-align:center" placeholder="Password"/>
</div>   
     <div style="text-align:center">
    <a href="javascript:doLogin();" data-role="button" data-inline="true" data-mini="true">DO LOGIN</a>
</div>
</div><!-- /page -->
</div>
</body>
</html>

因此,当我按下登录按钮时,我将我带到我的选项。php页vi以下功能:

function doLogin(){
$.ajax({
  type: "POST",
  url: "functions/checklogin.php",
  data: {
      usrnm: $('#username').val() , passwd: $('#password').val()
        }
})
  .done(function( msg ) {
    if(msg.match(/YES/)){
         $('#username').val('');
          $('#password').val('');
        $("body").pagecontainer("change","pages/options.php",{ });
    }
    else
   {
    alert(msg);
    }
  });   
}

在URL栏中,我现在有http://localhost/~me/OUI/pages/options.php,并且页面中的Everhthing运行良好。我有签名按钮。在调用

的代码中

options.php:

<div data-role="page" id="optionspage">    
<div data-role="header">
<a href="javascript:doSignout();" data-role="button" data-mini="true"  class="ui-btn-right" style="padding:5px">Sign Out</a>
    <h1>MAIN</h1>
</div>
    <div data-role="content" id="options1"> 
    <? if($_SESSION['role']=='A'){?>
      <a href="admin.php" data-role="button"  data-mini="true">ADMIN PAGE</a> 
      <a href="ordersetup.php" data-role="button"  data-mini="true">ORDER SETUP PAGE</a> 
      <? } ?>
       <a href="production.php" data-role="button"  data-mini="true">PRODUCTION</a>
        <a href="menurecipe.php" data-role="button" data-mini="true">MENU / RECIPE PAGE</a>

    </div><!-- /content -->
    </div>

这称为JS:

function doSignout(){
$.ajax({
  type: "POST",
  url: "../functions/signout.php",
  data: {    }
})
  .done(function( msg ) {
       $('body').pagecontainer( "change", "#loginarea",{});
  });   
}

我永远无法获取指向签名页面的链接以正确链接。如果我将双点放置在"页面"文件夹中应该是正确的,我会尝试链接到

http://localhost/~me/functions/signout.php 

,如果我删除了双点,我会得到

http://localhost/~me/OUI/pages/functions/signout.php

两个是404个错误.......这是我书中的铺位。" .."实际上正在删除两个目录。不仅是一个。

发生了什么事?请帮助

由于我们看不到您登录功能,我假设它看起来像以下内容?

$.ajax({
  type: "POST",
  url: "../functions/signin.php",
  data: {}
})

如果是这种情况,当您居住在/OUI/上时,"../functions/signin.php"如何找到标记。当您在主页上时,当然需要是"functions/signin.php"

简单地说,我猜想您的登录代码最初在主页上有所不同,然后在通过AJAX加载后续页面后,您的登录代码将被覆盖或修改为使用"../"前缀的代码。在更深的页面上...当您切换回主页时,这并没有得到纠正。

基本上,您需要重写代码以检测当前URL所在的深度有多少文件夹,并相应地请求您的Ajax文件...该文件或设置一个全局变量(易于更新),该变量使完整的域路径保持到前缀所有ajax URL。即:

var ROOT_URL = 'http://localhost/OUI/';

根据您想要使用的路径的不同,可以由PHP或JavaScript生成,PHP更可靠&mdash;就像最终用户不需要JavaScript&mdash;但是,当托管在代理和共享主机后面时,可能会感到困惑。

var ROOT_URL = 'http://<?php echo $_SERVER["HTTP_HOST"]; ?>/OUI/';
var ROOT_URL = 'http://' + window.location.host + '/OUI/';

相关内容

  • 没有找到相关文章

最新更新