2014-05-07 28 views
0

我很困惑,应该在哪里设置基本URL。目前,我打电话的URL及其扩展,因为它们是:如何设置基本URL并在哪里申报?

例如:

$(document).on("pageinit", "#login", function() { 
    $("#form2").on("submit", function (event) { 
     $.ajax({ 
      type: "GET", 
      url: "http://www.websiteurl.com/public/account/login/", //the full url 
      data: $("#form2").serialize(), 
      success: function (data) { 
       if (data.loggedIn) { 
        alert("logged"); 
       } else { 
        alert("not logged"); 
       } 
      } 
     }); 
    }); 
}); 

从我的理解基本URL是一个字符串,我正好连接信息到字符串,如:

var baseUrl = "http://www.websiteurl.com/"; 

$(document).on("pageinit", "#login", function() { 
     $("#form2").on("submit", function (event) { 
      $.ajax({ 
       type: "GET", 
       url: baseUrl + "public/account/login/", //using baseUrl 
       data: $("#form2").serialize(), 
       success: function (data) { 
        if (data.loggedIn) { 
         alert("logged"); 
        } else { 
         alert("not logged"); 
        } 
       } 
      }); 
     }); 
    }); 

但我相信我做错了,一些网站谈论使用PHP来声明baseurl。我可以得到一些建议如何做到这一点,我应该在哪里声明基本的URL字符串。

作为<base>在HTML页面或作为String在js文件上?谢谢。

+0

可以使用<基本href =“”>或第二个实施例变种的baseUrl来设置。无需在php中声明任何内容。或者只是使用完整的网址,baseUrl不是强制性的 – Timur

+1

http://stackoverflow.com/questions/1889076/is-it-recommended-to-use-the-base-html-tag –

回答

0

我不知道,但据我了解,这就像

<script type="text/javascript"> 
var baseUrl = '<?php echo "http://".$_SERVER["HTTP_HOST"]."/"?>'; 
</script> 

这里的$_SERVER["HTTP_HOST"]一部分是主机名,比方说,www.example.com 然后在Ajax请求,你可以使用baseUrl JS var和可以连接网址

url: baseUrl + 'account/login' 
+0

可能是愚蠢的问题,但你的代码的哪一部分,我将其替换为我的基础URL,例如,如果我的baseurl是“www.aaa.com/user”。 –

+0

@Trevor_zam我更新了一点答案,如果你的基础url包含超过主机名的smth,比你应该添加的,所以它会是'<?php echo“http://”。$ _ SERVER [“HTTP_HOST” ]。 “/用户/”?>' – dav

1

您不需要指定完整的基本网址。

变化:

url: baseUrl + "public/account/login/", 

到:

url: "/public/account/login/", 

,它应该继续工作。


考虑以下因素:HTTP://localhost/test.php

test.php的

<?php 

// GET Handler 
if (isset($_GET['loadData'])) 
{ 
    exit('Got your request'); 
} 

?> 

<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.0.min.js"></script> 
<script type="text/javascript"> 

$(document).ready(function() 
{ 
    $.ajax({ 
     url: "/test.php?loadData", 
     success: function(result) { 
      alert(result); 
     } 
    }); 
}); 

</script> 
+0

它不起作用。我应该在哪里放置baseurl。正如你所看到的,我目前正在将它声明为普通字符串。 –

+0

如果'baseURL'类似于'http:// www.websiteurl.com/test /'这可能不起作用。 –

+0

说实话,我没有看到宣布完整的url和baseurl +扩展之间有任何真正的区别。 –

0

我开发一个大型应用程序,并很快了解到有保持您的路径在一个位置并在其他地方使用变量和/或常量是非常有益的。原因很简单:灵活性,干燥等

如果有也使用JavaScript PHP应用程序,像我一样,你可能要考虑做这样的事情:

文件:constants.php

<?php 
define("WEB_ADDRESS","http://www.somewebsite.com"); 
//... 
?> 

而现在,把它变成每一个JS网页,虽然我不知道你的具体架构和是否要使用自助或没有,我假设你已经从你引导一个或多个文件和负载页眉/页脚,或者您使用模板程序。如果不是的话,你可能想看看它。无论如何,这个概念就是你只需在你的页面开始时为你加载的每个页面声明它,包括任何其他的JS。

文件:header.php(在您正在加载的网页中调用)。

//No Javascript above. 
echo '<script type="text/javascript">var WEB_ADDRESS = ' . WEB_ADDRESS . '</script>'; 
//Now you can put in your Javascript. 

的最终目的是,每个JavaScript文件包括你或者你调用任何JavaScript这一点是要访问的变量WEB_ADDRESS后。如果您出于任何原因需要更改该路径,则可以轻松地在不中断任何链接的情况下执行此操作,方法是使用PHP和Javascript。