问题 错误:XHR错误(404 Not Found)加载angular2 / http


我正在为我的Angular2应用程序使用angular-cli。每当我尝试在我的组件/服务中加载angular2 / http时,cli终端中没有显示错误,但是在我的浏览器控制台中它显示了这个 -

得到 HTTP://本地主机:4200 / angular2 / HTTP 404(未找到)

未处理的Promise拒绝:错误:XHR错误(404 Not   发现)装载 HTTP://本地主机:4200 / angular2 / HTTP         在XMLHttpRequest.desc.set.wrapFn [as _onreadystatechange](HTTP://本地主机:4200 /供应商/ zone.js / DIST / zone.js:769:30)         在ZoneDelegate.invokeTask(HTTP://本地主机:4200 /供应商/ zone.js / DIST / zone.js:356:38)         在Zone.runTask(HTTP://本地主机:4200 /供应商/ zone.js / DIST / zone.js:256:48)         在XMLHttpRequest.ZoneTask.invoke(HTTP://本地主机:4200 /供应商/ zone.js / DIST / zone.js:423:34)错误   装载 HTTP://本地主机:4200 / angular2 / HTTP 作为“angular2 / http”来自    HTTP://本地主机:4200 /应用/ JS-tree.component.js ;区域:;任务:   承诺。然后;值:错误:错误:XHR错误(404未找到)加载    HTTP://本地主机:4200 / angular2 / HTTP         在XMLHttpRequest.desc.set.wrapFn [as _onreadystatechange](HTTP://本地主机:4200 /供应商/ zone.js / DIST / zone.js:769:30)         在ZoneDelegate.invokeTask(HTTP://本地主机:4200 /供应商/ zone.js / DIST / zone.js:356:38)         在Zone.runTask(HTTP://本地主机:4200 /供应商/ zone.js / DIST / zone.js:256:48)         在XMLHttpRequest.ZoneTask.invoke(HTTP://本地主机:4200 /供应商/ zone.js / DIST / zone.js:423:34)错误   装载 HTTP://本地主机:4200 / angular2 / HTTP 作为“angular2 / http”来自    HTTP://本地主机:4200 /应用/ JS-tree.component.js

我的angular-cli版本是0.0.39

节点:4.2.2

这是我的system-config.ts

const map: any = {
};

/** User packages configuration. */
const packages: any = {
};


const barrels: string[] = [
  // Angular specific barrels.
  '@angular/core',
  '@angular/common',
  '@angular/compiler',
  '@angular/http',
  '@angular/router',
  '@angular/platform-browser',
  '@angular/platform-browser-dynamic',

  // Thirdparty barrels.
  'rxjs',

  // App specific barrels.
  'app',
  'app/shared',
  'app/tree',
  'app/tree/item',
  /** @cli-barrel */
];

const cliSystemConfigPackages: any = {};
barrels.forEach((barrelName: string) => {
  cliSystemConfigPackages[barrelName] = { main: 'index' };
});

/** Type declaration for ambient System. */
declare var System: any;

// Apply the CLI SystemJS configuration.
System.config({
  map: {
    '@angular': 'vendor/@angular',
    'rxjs': 'vendor/rxjs',
    'main': 'main.js'
  },
  packages: cliSystemConfigPackages
});

// Apply the user's configuration.
System.config({ map, packages });

还有我的package.json

{
  "name": "pankha",
  "version": "0.0.0",
  "license": "MIT",
  "angular-cli": {},
  "scripts": {
    "start": "ng server",
    "postinstall": "typings install",
    "lint": "tslint \"src/**/*.ts\"",
    "format": "clang-format -i -style=file --glob=src/**/*.ts",
    "pree2e": "webdriver-manager update",
    "e2e": "protractor"
  },
  "private": true,
  "dependencies": {
    "@angular/common": "2.0.0-rc.1",
    "@angular/compiler": "2.0.0-rc.1",
    "@angular/core": "2.0.0-rc.1",
    "@angular/platform-browser": "2.0.0-rc.1",
    "@angular/platform-browser-dynamic": "2.0.0-rc.1",
    "@angular/router": "2.0.0-rc.1",
    "es6-shim": "^0.35.0",
    "reflect-metadata": "0.1.3",
    "rxjs": "5.0.0-beta.6",
    "systemjs": "0.19.26",
    "zone.js": "^0.6.12"
  },
  "devDependencies": {
    "angular-cli": "0.0.*",
    "clang-format": "^1.0.35",
    "codelyzer": "0.0.14",
    "ember-cli-inject-live-reload": "^1.4.0",
    "jasmine-core": "^2.4.1",
    "jasmine-spec-reporter": "^2.4.0",
    "karma": "^0.13.15",
    "karma-chrome-launcher": "^0.2.3",
    "karma-jasmine": "^0.3.8",
    "protractor": "^3.3.0",
    "ts-node": "^0.5.5",
    "tslint": "^3.6.0",
    "typescript": "^1.8.10",
    "typings": "^0.8.1"
  }
}

和我的index.html

<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title>Pankha</title>
  <base href="/">
  {{content-for 'head'}}
  <link rel="icon" type="image/x-icon" href="favicon.ico">
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <!-- Service worker support is disabled by default.
       Install the worker script and uncomment to enable.
       Only enable service workers in production.
  <script type="text/javascript">
    if ('serviceWorker' in navigator) {
      navigator.serviceWorker.register('/worker.js').catch(function(err) {
        console.log('Error installing service worker: ', err);
      });
    }
  </script>
  -->
</head>
<body>
  <pankha-app>Loading...</pankha-app>

  <script src="vendor/es6-shim/es6-shim.js"></script>
  <script src="vendor/reflect-metadata/Reflect.js"></script>
  <script src="vendor/systemjs/dist/system.src.js"></script>
  <script src="vendor/zone.js/dist/zone.js"></script>
  <!-- <script src="node_modules/angular2/bundles/http.dev.js"></script> -->




  <script>
    System.import('system-config.js').then(function () {
      System.import('main');
    }).catch(console.error.bind(console));
  </script>
</body>
</html>

12856
2018-05-09 11:11


起源

你使用哪种角度版本? - Dinistro


答案:


我想你忘了包括 http.dev.js 您的主HTML文件中的文件:

<script src="node_modules/angular2/bundles/http.dev.js"></script>

请注意,这仅适用于beta版本(不是rc版本),但是因为您使用了 angular2/http 模块,我想你使用的是测试版。


8
2018-05-09 11:45



我做了,但它没有工作:(。我需要添加更多的代码? - pd farhad
事实上,当SystemJS尝试加载类似的模块时,因为它无法在预先注册的模块中找到它(来自angular2.dev.js,http.dev.js,...)。 - Thierry Templier
你能提供HTML主文件的内容(脚本元素和SystemJS配置)吗?你使用哪个版本的Angular2?谢谢! - Thierry Templier
我编辑了我的帖子,谢谢你的关注:) - pd farhad
使用ng创建Project_name创建后,我转到该文件夹​​并键入npm install angular2。所以我确实在'node_modules / angular2 / bundles /'中看到'http.dev.js' - pd farhad


我找到了解决方案。我没有使用angular2的beta版 所以我不得不打开我的package.json并在依赖项下添加这一行

"@angular/http": "2.0.0-rc.1",

然后我打开了我的终端并输入了

npm install

它更新了我的system-config.ts

const barrels: string[] = [
  // Angular specific barrels.
  '@angular/core',
  '@angular/common',
  '@angular/compiler',
  '@angular/http',
  '@angular/router',
  '@angular/platform-browser',
  '@angular/platform-browser-dynamic',

  // Thirdparty barrels.
  'rxjs',

  // App specific barrels.
  'app',
  'app/shared',
  'app/tree',
  'app/tree/item',
  /** @cli-barrel */
];

它在哪里

const barrels: string[] = [
  // Angular specific barrels.
  '@angular/core',
  '@angular/common',
  '@angular/compiler',
  '@angular/router',
  '@angular/platform-browser',
  '@angular/platform-browser-dynamic',

  // Thirdparty barrels.
  'rxjs',

  // App specific barrels.
  'app',
  'app/shared',
  'app/tree',
  'app/tree/item',
  /** @cli-barrel */
];

6
2018-05-09 17:33



你救了我几个小时;) - wzr1337