0
こんにちは私は使用しているapiにユーザー名、電子メール、パスワードを投稿するionic 2のサインアップページを作ろうとしています。しかし、私はこのエラーTypeError: this.http.post is not a function
を取得します。私はすでにこの問題について検索してみましたが、それは私のためには機能しません。Ionic 2 TypeError:this.http.postは関数ではありません
ここにあります私のsignup.js:
import {Injectable, Inject} from 'angular2/core';
import {Page, NavController} from 'ionic-angular';
import {TabsPage} from '../tabs/tabs';
import {UserData} from '../../providers/user-data';
import {Http, Headers, RequestOptions} from 'angular2/http';
import {Observable} from 'rxjs/Observable';
import 'rxjs/Rx';
@Page({
templateUrl: 'build/pages/signup/signup.html'
})
@Injectable()
export class SignupPage {
static get parameters() {
return [[Http], [NavController], [UserData]];
}
constructor(nav, userData, http) {
this.nav = nav;
this.userData = userData;
this.http = http;
this.signup = {};
this.submitted = false;
}
onSignup(form) {
let body = JSON.stringify(form.value);
let headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
headers.append('Accept', 'application/json');
let options = new RequestOptions({ headers: headers });
this.http.post('http://localhost:8000/api/v1/auth/register', body, options)
.map(res => res.json())
.subscribe(
data => this.success = data
)
.catch(this.handleError);
}
handleError(error) {
console.error(error);
return Observable.throw(error.json().error || 'Server error');
}
}
助けてください!
static get parameters() {
return [[Http], [NavController], [UserData]]; // <-----
}
constructor(nav, userData, http) { // <-----
}
あなたは両方のレベル(とも角括弧の右に同じ順序を定義する必要があります。
おかげで、今では、POSTはhttpは言う:// localhostを:8000/API/V1/AUTH/400(不正な要求)を登録、私はすでに郵便配達でAPIをテストしてきましたそれは働く。場合には、これは私がhttps://sampleapi.demo.rocksを使用するapiです –
申し訳ありません...私の悪い....私はアプリケーション/ x-www-form-urlencodedのスペルを間違っていました.... application/x-www-form-urlencodeded –
私はそうは思わない;-) JSONコンテンツの代わりにフォームを送信したいからです。ペイロードを作成し、body変数の代わりにtoStringメソッドの戻り値を設定するには、URLSearchParamsクラスを使用する必要があります。 –