我试图使用Angular 2中的Http类获取一个json文件.我按照Angular 2主页上的示例进行操作:https://angular.io/docs/js/latest/api/http/Http-class.html.但是,我收到以下错误消息.我使用的是Angular 2.0.0-alpha.37,traceur 0.0.91,systemjs 0.16.11,es6-module-loader 0.16.6和typescript 1.6.2.关于这里可能有什么问题的任何想法?
app.ts
///<reference path="typings/angular2/angular2.d.ts"/>
///<reference path="typings/angular2/http.d.ts"/>
import {Component, View, bootstrap} from 'angular2/angular2';
import {Http, HTTP_BINDINGS} from 'angular2/http';
@Component({
selector: 'myApp',
viewBindings: [HTTP_BINDINGS]
})
@View({
templateUrl: 'myapp.html'
})
class MyComponent {
data: Object;
constructor(http: Http) {
http.get('data.json').toRx().map(res => res.json()).subscribe(data => this.data = data);
}
}
bootstrap(MyComponent);
Run Code Online (Sandbox Code Playgroud)
的index.html
<!DOCTYPE html>
<html>
<head>
<script src="../node_modules/angular2/bundles/angular2.dev.js"></script>
<script src="../node_modules/angular2/bundles/http.dev.js"></script>
<script src="../node_modules/traceur/bin/traceur-runtime.js"></script>
<script src="../node_modules/es6-module-loader/dist/es6-module-loader.js"></script>
<script src="../node_modules/systemjs/dist/system.src.js"></script>
</head>
<body>
<myApp></myApp>
<script>
System.import('app');
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
结果 …
如何使用角度2在GET调用中发送参数我尝试了以下方式,但得到一些错误说,
Argument of type '{ params: URLSearchParams; }' is not assignable to parameter of type 'RequestOptionsArgs'.
Object literal may only specify known properties, and 'params' does not exist in type 'RequestOptionsArgs'.
Run Code Online (Sandbox Code Playgroud)
功能调用:
import {Http, Response, Headers, RequestOptions, URLSearchParams} from 'angular2/http';
import 'rxjs/Rx';
constructor(private nav: NavController, public http: Http) {
onLogin(value: string): void {
if(this.authForm.valid) {
this.userData.login();
let params = '';
let options = new RequestOptions({
// Have to make a URLSearchParams with a query string
params: new URLSearchParams('validateUsr=false')
});
this.http.get('https://itunes.apple.com/us/rss/topmovies/limit=1/json', …Run Code Online (Sandbox Code Playgroud) 这是我自己编程的一个新领域,因为我到目前为止只用java编写了很少的程序.在过去的几天里,我试图开始一个新的"更大"的项目.到现在为止我得到了:
我的问题是在聚合物元素中获取可变数据.如果我得到他们关于聚合物数据绑定或关于javascript和其余api无关紧要.但我不知道该怎么做..
有没有人,谁了解我,可以给我一些提示或链接到一个有用的教程?根据兴趣,我也可以提供我的代码.
谢谢,迈克尔
我试图从Angular2 beta 8发布json但是标题没有被传输:
import { RequestOptions, RequestMethod, RequestHeaders, RequestOptionsArgs, Http } from 'angular2/http';
// ...
let headers = new Headers(),
body = JSON.stringify({ identifier, password });
headers.append('Content-Type', 'application/json');
headers.append('Accept', 'application/json');
let opts:RequestOptionsArgs = { headers: headers };
this.http.post(this.baseUrl + 'auth/login', body, opts)
.subscribe(
data => console.log(data),
err => console.log(err.json().message),
() => console.log('Authentication Complete')
);
Run Code Online (Sandbox Code Playgroud)
但Chrome中的XHR调用没有这些标题.Chrome调试显示Content-Type标题已标记Provisional Headers are Shown并显示Content-Type:text/plain;charset=UTF-8.标题值似乎是正确的:
console.log(headers.get('Content-Type')) // => 'application/json'
console.log(headers.get('Accept')) // => 'application/json'
Run Code Online (Sandbox Code Playgroud)
问题是我要进去RequestHeaders,但它应该是Headers.为什么它没有给我一个错误,我不知道.
我开始使用angular 2和typeScript,一切都很棒,但是当我在控制台日志中使用rest api(POST)时,我得到了Response {_body: "", status: 204, statusText: "Ok", headers: Headers, type: 2… },尽管我通过了真正的param登录,这是我的代码
authentification(){
var headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
// headers.append('Content-Type', 'application/json');
return this.http.post(this._postUrl,JSON.stringify({username:"abc",password:"abc"}),{headers:headers});
}
Run Code Online (Sandbox Code Playgroud)
这是我的网络服务
@POST
@Path("/admin")
@Consumes("application/x-www-form-urlencoded")
public User getDate(@HeaderParam("username")String username,@HeaderParam("password")String password) throws Exception{
try {
String passwordC = AESCrypt.encrypt(password);
User u = userService.login(username, passwordC);
return u;
} catch (Exception e) {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
我认为我的网络服务参数中的问题在字符串和角度参数中是json,
任何人都可以帮助我,谢谢.