如何设置基本URL以及在哪里声明它?

时间:2014-05-07 15:45:46

标签: javascript php jquery ajax

我对在哪里设置基本网址感到困惑。目前我正在调用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字符串。

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

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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中断开任何链接。

答案 2 :(得分: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

url: baseUrl + 'account/login'