2017-12-09 7 views
0

私はpostリクエストをDjangoバックエンドにIonic 3でフロントエンドアプリケーションとして作成しようとしています。今私のポストメソッドは次のようになります。Ionic 3は、http://www投稿フォームをアプリケーション/ x-www-form-urlencodedとしてDjangoバックエンドに送信します。

register(username, password, email, first_name, last_name) { 
    let url = "https://www.example.com/api/create_user/"; 
    let headers = new Headers(); 
    headers.append("Content-Type", "application/x-www-form-urlencoded"); 

    return this.http.post(url, 
     {"first_name": first_name, 
     "last_name": last_name, 
     "email": email, 
     "username": username, 
     "password": password}, 
     {headers: headers}) 
     .map(res => res.json()); 
    } 

しかし、Djangoはこのようにそれを受信して​​いる: <QueryDict: {'{\n "first_name": "bob",\n "last_name": "bob",\n "email": "[email protected]",\n "username": "bob",\n "password": "bob"\n}': ['']}> そして文字列にJSONオブジェクトを変更します。フロントエンドでフォームデータを適切に送信したいので、私はDjangoバックエンドでjankyの修正をする必要はありません。 transformRequestをヘッダーに追加しようとしましたが、コンテンツタイプが取り除かれるか、または自動的に未定義に変更されるため、プリフライト応答がトリガーされます。 QueryDictがうんざりしないようにフォームデータを正しく送信するにはどうすれば変更できますか?

答えて

0

私は間違った質問をしています。以下に示すように、application/jsonとしてイオンアプリでリクエストを維持して、Djangoの側にpostリクエストが送信されているビューにJSON用のパーサーを実装する方がはるかに簡単です:

from rest_framework.decorators import parser_classes 
from rest_framework.parsers import JSONParser 

@parser_classes((JSONParser,)) 
def some_view: 
    # View code here 
関連する問題