AngularJS转换为HTTPS。获取错误并且Angular不会加载

时间:2017-04-03 23:15:00

标签: angularjs https zurb-foundation

我正在恢复用AngularJS for Foundation编写的旧项目。我决定添加HTTPS。我已经获得了正确保护的域名,并且我已经查找/替换了所有http:https:

但是,它现在在加载页面时在Chrome控制台中显示此错误:

foundation.js:5346 Uncaught Error: [$injector:unpr] Unknown provider: $httpProvider <- $http <- $templateFactory <- $view <- $state

  at foundation.js:5346
    at foundation.js:9659
    at Object.getService [as get] (foundation.js:9807)
    at foundation.js:9664
    at getService (foundation.js:9807)
    at invoke (foundation.js:9839)
    at Object.instantiate (foundation.js:9856)
    at Object.<anonymous> (foundation.js:9716)
    at Object.invoke (foundation.js:9848)
    at Object.enforcedReturnValue [as $get] (foundation.js:9700)

知道为什么吗?我的猜测是$ http调用,但angular并没有专门为https提供一些东西。同样,只有当我强制域使用https时才会出现此错误。

这里的基础.js:5346:

return new ErrorConstructor(message);

:9659-9664

}

return {
  invoke: invoke,
  instantiate: instantiate,
  get: getService,

:9700-9716

   var result = instanceInjector.invoke(factory, this);
      if (isUndefined(result)) {
        throw $injectorMinErr('undef', "Provider '{0}' must return a value from $get factory method.", name);
      }
      return result;
    };
  }

  function factory(name, factoryFn, enforce) {
    return provider(name, {
      $get: enforce !== false ? enforceReturnValue(name, factoryFn) : factoryFn
    });
  }

  function service(name, constructor) {
    return factory(name, ['$injector', function($injector) {
      return $injector.instantiate(constructor);

:9807-9856

 return cache[serviceName] = factory(serviceName, caller);
} catch (err) {
  if (cache[serviceName] === INSTANTIATING) {
    delete cache[serviceName];
  }
  throw err;
} finally {
  path.shift();
}


 }
}

function invoke(fn, self, locals, serviceName) {
  if (typeof locals === 'string') {
    serviceName = locals;
    locals = null;
  }

  var args = [],
      $inject = createInjector.$$annotate(fn, strictDi, serviceName),
      length, i,
      key;

  for (i = 0, length = $inject.length; i < length; i++) {
    key = $inject[i];
    if (typeof key !== 'string') {
      throw $injectorMinErr('itkn',
              'Incorrect injection token! Expected service name as string, got {0}', key);
    }
    args.push(
      locals && locals.hasOwnProperty(key)
      ? locals[key]
      : getService(key, serviceName)
    );
  }
  if (isArray(fn)) {
    fn = fn[length];
  }

  // http://jsperf.com/angularjs-invoke-apply-vs-switch
  // #5388
  return fn.apply(self, args);
}

function instantiate(Type, locals, serviceName) {
  // Check if Type is annotated and use just the given function at n-1 as parameter
  // e.g. someModule.factory('greeter', ['$window', function(renamed$window) {}]);
  // Object creation: http://jsperf.com/create-constructor/2
  var instance = Object.create((isArray(Type) ? Type[Type.length - 1] : Type).prototype || null);
  var returnedValue = invoke(Type, instance, locals, serviceName);

更新:嗯,这很容易。自从我为此工作以来已经有一段时间了。它是100%foundation.js,我的自定义代码在其他地方。我将基础.js替换为原始版本,没有用https替换http,这一切都运行良好。

0 个答案:

没有答案