2016-07-28 16 views
2

現在、私はAngular2とRoR5 APIに問題があります。オブジェクトをAPIサーバーに保存しようとしていますが、これは機能しません。ここでPOSTリクエストでparamsのデータがありません

は、サービスのための私のAngular2コード:

createFrame(frameData) { 
    let headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' }); 
    let options = new RequestOptions({ headers: headers }); 
    let body = JSON.stringify({frame: frameData}); 
    return this.http.post(this.frameURL, body, headers).map((res: Response) => res.json()); 
} 

要求は私のブラウザで行われ、私はJSONデータを見ることができます: enter image description here

しかし、RoRのは、POSTを取得することができませんデータ。

[1] pry(#<Api::V1::FramesController>)> params 
=> <ActionController::Parameters {"format"=>:json, "controller"=>"api/v1/frames", "action"=>"create"} permitted: false> 
[2] pry(#<Api::V1::FramesController>)> 

誰かが私に何かを教えてもらえますか?

+0

が見えます) 'title'、' is_photolini'など –

答えて

1

あなたの場合、フォームデータのコンテンツタイプを設定し、JSON形式のコンテンツを送信します。

送信フォームデータまたはJSONコンテンツを使用してください。

  • フォームデータ

    createFrame(frameData) { 
        let headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' }); 
        let options = new RequestOptions({ headers: headers }); 
        let form = new URLSearchParams(); 
        form.set('param1', 'some value'); 
        let body = form.toString(); 
        return this.http.post(this.frameURL, body, headers).map((res: Response) => res.json()); 
    } 
    
  • JSONデータ

    createFrame(frameData) { 
        let headers = new Headers({ 'Content-Type': 'application/json' }); 
        let options = new RequestOptions({ headers: headers }); 
        let form = new URLSearchParams(); 
        form.set('param1', 'some value'); 
        let body = form.toString(); 
        return this.http.post(this.frameURL, body, headers).map((res: Response) => res.json()); 
    } 
    
+0

ありがとうございました。私も同様のソリューションを持っていましたが、うまくいかなかったのです。今問題が見つかりました。返り値の行では、ヘッダ変数をpostメソッドに渡します。それは代わりにオプションでなければならない。あなたのソリューションを変更することができるかもしれないので、他の人には役立つかもしれません。 – user39063

0

問題は、CORS(クロスオリジンリソースの共有)

に関連するかもしれません

アプリケーション内で有効にするには汝 - > Enabling cors Rails5

あなたは[許可](http://api.rubyonrails.org/classes/ActionController/Parameters.htmlに必要がある場合がありますように頑張ってください

関連する問題