trả lời ngắn (trong nguyên cảo):
// Import you were looking for
import {Http, Response, Headers, RequestOptions, URLSearchParams} from 'angular2/http';
//... jump down some code
export class MyRegistrationsComponent {
constructor(private http: Http) { }
getDudesAndDudettes() {
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({
headers: headers,
// Have to make a URLSearchParams with a query string
search: new URLSearchParams('firstName=John&lastName=Smith}')
});
return this.http.get('http://localhost:3000/MyEventsAPI', options)
.map(res => <Dudes[]>res.json().data)
}
Các tài liệu có thể được tìm thấy tại Angular2 API Docs for RequestOptions. Bạn sẽ nhận thấy rằng các search
param là một loại URLSearchParams
Một ví dụ khác là trong Angular2 Guides (không nhớ những thứ JSONP, nó thường làm thế nào để sử dụng tham số truy vấn cho các yêu cầu http bình thường quá).
tham khảo để giải thích nó một cách khác nhau: How to utilise URLSearchParams in Angular 2
Ngoài ra, nếu bạn không nhập RxJS trong app.ts
chức năng quan sát của bạn sẽ phá vỡ.
Ví dụ càng đầy đủ trong nguyên cảo:
import {Component} from 'angular2/core';
import {Http, Response, Headers, RequestOptions, URLSearchParams} from 'angular2/http';
import {Registrant} from './registrant';
import {Registration} from './registration';
import {Observable} from 'rxjs/Observable';
@Component({
selector: 'my-registrations',
templateUrl: 'app/my-registrations.component.html',
inputs: ['registrant']
})
export class MyRegistrationsComponent {
constructor(private http: Http) { }
private _registrantionsUrl: string = 'http://localhost:3000/MyEventsAPI';
private _title = 'My Registrations Search';
public registrant: Registrant = { firstName: "John", lastName: "Smith" };
findMyEvents() {
let body = JSON.stringify(this.registrant);
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({
headers: headers,
search: new URLSearchParams(`firstName=${this.registrant.firstName}&lastName=${this.registrant.lastName}`)
});
return this.http.get(this._registrantionsUrl, options)
.toPromise()
.then(res => <Registration[]>res.json().data)
.catch(this.handleError);
}
private handleError(error: Response) {
console.error(error);
return Observable.throw(error.json().error || 'Server error');
}
}
Nguồn
2016-02-19 20:25:01
Đây là một ví dụ tốt cho yêu cầu xhr. Nhưng nó sẽ gửi một yêu cầu đến một máy chủ api còn lại. Những gì tôi cần chỉ là sửa đổi các thông số trên thanh địa chỉ mà không cần thực hiện yêu cầu xhr. – vbilici
@vbilici để bên trong một hàm, như 'findMyEvents() {window.location.replace (\' http: //my.current.page.com? FirstName = $ {this.registrant.firstName} & lastName = $ {this. registrant.lastName} \ '); } 'Đó là nhiều hơn những gì bạn đang tìm kiếm –
@Toolkit nó là một đám cháy dumpster chắc chắn, hoặc uống từ một vòi cứu hỏa. Chọn phép ẩn dụ của bạn. :) Lập trình đang tìm cách tốt hơn để giải quyết các vấn đề khó khăn và phổ biến. Nhân viên giao diện người dùng chỉ có nhiều ý kiến về vấn đề này, https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f –