「http://mywebsite:8080/api_name/user」のリクエストを受け入れ、リクエスト内の「api-key」変数との可能な接続をチェックし、パスワードの種類を含んだwebservice(実際にはdrupal 7プラグインサービスで生成)を持っています。multipart/form-dataリクエストとしてパラメータを使用してionic2(typescript)でhttp投稿を送信するにはどうすればよいですか?
私のionic2/cordovaアプリケーションでサービスに接続しようとすると、リクエスト側のペイロードのペイロードがサーバ側で空になります($ _REQUESTは空の配列であり、必要なapi-keyを含んでいません。要求が失敗する)。
https://requestb.in/で要求をデバッグすると、期待どおりに変数が要求の本文に含まれていることが示されます。
ウェブサービスは、Google側から送信された投稿要求がうまくいっているため、うまくいきます(私はrequestb.inへの郵便配達要求を差していることに気づいたと思いました。 'api-key'パラメータは"Form/Post Parameters"と呼ばれる部分で、application/jsonの代わりにcontent typeが 'multipart/form-data'になっています)
私のコード(正しいと思われる)はちょっと混乱していますここでは...
を働いていないと、Webサービスに接続しようとする関数のコードは次のとおりです。
register(username,password,email){
var headers = new Headers();
headers.append('Accept', 'application/json');
let options = new RequestOptions({ headers: headers });
let postParams = {
"api-key" : "someSecret",
"name" : "something",
"mail" : "somethingelse"
}
this.http.post("http://mywebsite:8080/api_name/user", postParams, options).subscribe(data => {
console.log("ok");
}, error => {
console.log("error:"+error);// Error getting the data
});
}
EDIT: "$ _REQUESTはHTMLフォームを送信した後にデータを収集するために使用されています"ということを読んでいるので、問題は実際にリクエストを 'multipart/form-data'として送信しますが、ヘッダーの 'Content-type'を変更するだけでは十分ではないようです。私はここでそれが正しいコードであり、試行の時間後(NO幸運で)
headers.append('Content-type', 'multipart/form-data');