为模板和服务器请求设置不同的$ http url前缀

时间:2014-06-04 23:29:50

标签: angularjs

基本上我要做的是为所有$ http服务器请求(服务器URL)设置前缀。我试图使用拦截器,但问题是这也会影响模板请求:

$httpProvider.interceptors.push(function ($q) {
    return {
        'request': function (request) {
            request.url = "http://localhost/"+request.url;
            return request || $q.when(request);
        }
    }
});

=>

XMLHttpRequest cannot load http://localhost/templates/main.html

我考虑过使用我自己的提供程序(例如$ myHttp)来继承$ http,但我不知道如何做到这一点。

那么对此有什么好处?

1 个答案:

答案 0 :(得分:1)

如果所有模板都在templates目录中,您可以忽略拦截器中的模板。

$httpProvider.interceptors.push(function ($q) {
  return {
    request: function (request) {
      if (request.url.indexOf('templates') === -1) {
        request.url = "http://localhost/" + request.url;
      }
      return request || $q.when(request);
    }
  }
});