我需要帮助才能从Ionic页面请求帖子
我正在尝试创建一个登录应用程序,将来我会放置一个令牌系统,所以我需要向服务器发送一个POST并返回数据,但是当我尝试发送POST时,它不会随着DATA发送而到达,PHP与$ _POST [mod_disco:register_feature
]例如......
我的页面提供者
email
我的页面登录
import { Injectable } from '@angular/core';
import { Headers, Http } from '@angular/http';
import 'rxjs/add/operator/map';
let apiURL = "http://192.168.64.2/irewards/api/";
/*
Generated class for the AuthServiceProvider provider.
See https://angular.io/guide/dependency-injection for more info on providers
and Angular DI.
*/
@Injectable()
export class AuthServiceProvider {
constructor(public http: Http) {
}
postData(credentials, type){
return new Promise((resolve, reject) => {
let header = new Headers();
console.log(JSON.stringify(credentials));
this.http.post(apiURL + type, JSON.stringify(credentials), { headers: header }).subscribe(res => {
resolve(res.json());
}, (err) => reject(err));
});
}
}
和我的页面PHP
@IonicPage()
@Component({
selector: 'page-login',
templateUrl: 'login.html',
})
export class LoginPage {
responseData: any;
userData = { "email":"", "pass":"" };
constructor(public navCtrl: NavController, public authService: AuthServiceProvider) {
}
ionViewDidLoad() {
}
openRegister(){
this.navCtrl.push('RegisterPage');
}
signin(){
this.authService.postData(this.userData, "users.class.php").then((result) => {
this.responseData = result;
console.log(this.responseData);
//localStorage.setItem('userData', JSON.stringify(this.responseData));
//this.navCtrl.push(HomePage);
}, (err) => console.log(err));
}
}
如果为$ _GET更改$ _POST,它会返回我需要的所有内容
答案 0 :(得分:0)
这是因为http post正在Input Stream中发送数据。您无法使用$ _POST访问它。
要访问数据,您需要使用$data = file_get_contents('php://input');
,然后在代码中访问$data['email']
。
您的数据也可能是jsonencoded。在这种情况下,请使用$data = json_decode(file_get_contents('php://input'));
如果您想通过$ _POST访问数据,则需要向您发送内容类型为application/x-www-form-urlencoded
的POST数据。
答案 1 :(得分:0)
使用import { HTTP } from '@ionic-native/http';
和标题符号:var options = new RequestOptions({headers: new Headers({
'Content-Type' : 'application/x-www-form-urlencoded',
})
发贴示例时:this.http.post(url, post, options).then((data) => ...