0

したがって、角度のあるアプリケーションでは、JSP を使用してサーバー側で保存を処理しようとしています。私が抱えている問題は、Angular の $save メソッドを使用すると、オブジェクト データ (保存しているオブジェクト) が JSON オブジェクトとして送信されますが、慣れている方法では送信されないことです。request.getParameter() を介してオブジェクトにアクセスすることはできず、firebug でリクエストを見ると、JSON を送信していないか、パラメータがないことがわかります。代わりに、「POST」部分で json オブジェクトを送信します。ここで何が起こっているのかよくわかりません。???

これが私がこれまでに知っていることです:

Angular での投稿のデフォルトの contentType は「application/json」であるため、それを「application/x-www-form-urlencoded;charset=utf-8」に変更すると、少なくとも json オブジェクトのパラメーターを取得できます。 request.getParameter() (json オブジェクトの送信方法も変更する場合)

しかし

jQuery.ajax() を使用してリクエストを作成し、contentType を「application/json」に設定してから json オブジェクトをデータとして渡すと、json オブジェクトを取得できるため、これはそもそも問題ではありません。属性をパラメーターとして使用できるので、request.getParameter() を使用できます。URL にクエリ文字列が含まれていないだけです。

すっごく、私の質問は次のとおりです。

1)Angularがデータを送信する方法で何が起こっているのか

2) $resource $save 関数を使用しながら変更できる方法はありますか ($http の contentType を変更すると、$resource メソッドを使用するときに悪影響があります)。最も重要なことは、

3)変更できない場合(または変更できたとしても)、現在の動作方法でJSPのjsonデータをどのように解析しますか.

あなたの助けに感謝します。私はまだこれについて何かを見つけることができないとは信じられません.私はしばらく探していました.

4

1 に答える 1

0

さて、誰かがこれについて疑問に思っている場合に備えて:

angular と jquery の "post" メソッドに同じ dataType ("application/json") を指定したときに動作が異なる理由はまだよくわかりませんが、私が知る限り、Angular は REST を使用しているようで、JQuery だと思います。ではない?

サーバー側で json を解析する方法については、次の投稿を参照してください: HttpServletRequest から JSON オブジェクト リテラルを取得する

于 2013-04-19T21:32:53.267 に答える