2017-09-11 9 views
2

私はログインシステムで作業中です。以前はgetメソッドを使用していました。アプリケーションを実行すると、ajaxリクエストは正しいように見えますが、サーバー側のパラメータはnullですか?Java Spring - RequestMethod.POSTを使用した場合のnull値エラー

古いコード...

- サーバ側

@SuppressWarnings("unchecked") 
@RequestMapping(value = "/login", method = RequestMethod.GET) 
@CrossOrigin(origins = {"*"}) 
public ResponseEntity<?> login(
     @RequestParam(value="email", required=false, defaultValue="email") String email, 
     @RequestParam(value="password", required=false, defaultValue="password") String password, 
     HttpServletRequest request 
     ) throws Exception { 

- フロントサイド

export function fetchAuthentication(data) { 
    let url = 'http://localhost:8080/[email protected]&password=1234'; 
    return function (dispatch) {  
    axios.get(url) 
     .then(function (response) { 
     dispatch(authSuccess(response)); 
     }) 
     .catch(function (error) { 
     dispatch(authFail(error)); 
     }); 
    } 
} 

新しいコード..

- サーバ側

@SuppressWarnings("unchecked") 
@RequestMapping(value = "/login", method = RequestMethod.POST) 
@CrossOrigin(origins = {"*"}) 
public ResponseEntity<?> login(
     @PathVariable(value="email", required=false) String email, 
     @PathVariable(value="password", required=false) String password, 
     HttpServletRequest request 
     ) throws Exception { 

       System.out.println("email email>>>"+email); 

- フロントサイド

export function fetchAuthentication(data) { 

    let url = 'http://localhost:8080/login'; 

    return function (dispatch) {  
    axios.post(url, data) 
     .then(function (response) { 

     if(response.status === "success"){ 
     dispatch(authSuccess(response)); 
     } 
     else{ 
     // fail - user not found for example 
     dispatch(authFail(response)); 
     } 

     }) 
     .catch(function (error) { 
     dispatch(authFail(error)); 
     }); 
    } 
} 
+0

'' PathVariable''はあなたのURIに関連していて、POST本体のペイロードには関係しません。 – Matt

+0

それは "RequestParam"でなければなりません - 私はこれを好きでしたが、まだ何も得ていませんでしたか? –

+0

アクシオスコードが正しいようです - 私はポストのヘッダーに "{" email ":" [email protected] "、" password ":" 1234 "}" RequestParamがnullの場合、Java側のログを確認しますか? –

答えて

0

あなたが入力さだけでは、クライアント側で正常にやっていることを確認するrequired=trueパラメータ作ることができます。

+0

- 私はその検証をクライアント側で - 還元型 - しかし、私のrequestParams - サーバー側がPOST要求メソッドを処理していないかのようにしていますか? –

+0

おそらく、これらのパラメータはサーバーに送信されず、IMHOクライアント側とサーバー側の両方の検証が必要です。 また、あなたのコントローラにマップされているパスは?あなたのコントローラクラスに注釈を付けた 'RequestMapping'アノテーションの価値は何ですか? – ali4j

+0

リクエストマッピングは/ loginに行きます - 私は要求を取得するために切り替えて、今これらのパラメータを取得しているように見えますが、セキュリティのためにすぐにポストに切り替える必要があるのだろうかと疑問に思っています –

関連する問題