【问题标题】:How to set a url base based on your host如何根据您的主机设置 url 基础
【发布时间】:2026-01-11 22:50:03
【问题描述】:

我希望能够根据我的主机设置一个 var urlbase。例如,我想在我的服务调用中说,

    if (host ="localhost:8000") {
        var urlBase = '/api';
    } else {
        var urlBase = '/core/api';
    }

我会在“主机”中输入什么来检查网站的主机?

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    hostname 可用于 location 全局变量。

    您的代码可能如下所示:

    var host = location.hostname;
    

    我还应该注意,您的代码不会像编写的那样工作。您的 if 语句使用 = 为主机分配一个值,而不是与 == 进行比较。

    有关主机名的更多信息,请访问W3Schoolsthis question。在MDN 上查看有关位置变量的大量详细信息。

    AngularJS 还提供了一个 injectable service 以允许进行称为 $location 的测试,它执行所有相同的操作。

    【讨论】:

    • 简单易行。谢谢。
    【解决方案2】:

    在 AngularJS 中你有 $location 服务

    https://docs.angularjs.org/api/ng/service/$location

    检查 absUrl()、host() 和 url() 方法。

    var host = $location.host();
    

    【讨论】:

      【解决方案3】:

      使用angularhttps://docs.angularjs.org/api/ng/service/$location提供的$location服务

      function MyController($location){
      
          var host = 'http://' + $location.host();
      
      }
      

      【讨论】:

        【解决方案4】:

        你可以这样做。

        if(window.location.hostname == 'localhost')
            var urlBase = '/api';
        else
            var urlBase = '/core/api';
        

        【讨论】:

          【解决方案5】:

          我们可以在 serice 中注入 $state,我们可以在其中看到 url 并且您可以设置基本 url

          【讨论】: