Dart + Angular 2无法发出HTTP请求

时间:2016-06-17 19:02:37

标签: angular dart angular-dart dart-mirrors

我正在尝试创建一个简单的Angular 2 + Dart应用程序,我将对远程API进行HTTP调用。我正在关注此link上有关Dart的angular.io教程。它正在为JS正确编译,但当我尝试使用Chrome访问它时,我收到错误。

我正在使用Dart 1.16.0和angular2.beta17。

这是我的 pubspec.yml 文件:

name: CaixaPostal
description: MyApp Description
version: 0.0.1
environment:
  sdk: '>=1.13.0 <2.0.0'
dependencies:
  angular2: 2.0.0-beta.17
  browser: ^0.10.0
  http: ^0.11.3+7
  dart_to_js_script_rewriter: ^1.0.1
transformers:
- angular2:
    platform_directives:
    - 'package:angular2/common.dart#COMMON_DIRECTIVES'
    platform_pipes:
    - 'package:angular2/common.dart#COMMON_PIPES'
    entry_points: web/main.dart
    resolved_identifiers:
        BrowserClient: 'package:http/browser_client.dart'
- dart_to_js_script_rewriter

这是我的 main.dart 文件:

import 'package:angular2/platform/browser.dart';
import 'package:http/browser_client.dart';
import 'package:CaixaPostal/app.component.dart';

void main() {
  bootstrap(AppComponent, const [BrowserClient]);
}

我已经完成 pub get ,我正在使用 pub serve 来运行本地Web服务器。当我访问http://localhost:8080/时,我在Chrome控制台上收到以下错误消息。但是,当我删除方法 bootstrap()的第二个参数时,它可以正常工作。

enter image description here

1 个答案:

答案 0 :(得分:2)

我让它将我的 main.dart 修改为:

import 'package:angular2/core.dart';
import 'package:angular2/platform/browser.dart';
import 'package:http/browser_client.dart';
import 'package:CaixaPostal/app.component.dart';

BrowserClient HttpClientBackendServiceFactory() => new BrowserClient();

void main() {
  bootstrap(AppComponent, const [
    const Provider(BrowserClient, useFactory: HttpClientBackendServiceFactory, deps: const [])
  ]);
}

但是,我不知道为什么这种方式有效。它似乎与此问题https://github.com/angular/angular/issues/5266有关。