2017-04-15 27 views
0

助けてください。私はサーバー側コントローラでヒットを得ることができません。ブラウザで毎回「404-Not Found」エラーが表示されます。私は、サーバー側に投稿データを渡したいし、サーバーから他の文字列を返すしたい。以下は私のコードスニペットは、次のとおりです。 -Angular ajax POSTリクエストが機能しない - 404エラーを返す

のweb.xmlサーブレットマッピング: -

<servlet-mapping> 
    <servlet-name>sdnext</servlet-name> 
    <url-pattern>*.html</url-pattern> 
</servlet-mapping> 

MyController.java:-

import....; 

@Controller 

public class MyController { 

    @RequestMapping(value = "/registration", method = RequestMethod.POST) 
    @ResponseBody 
    public String methodStart(@RequestParam (value="UID",required=true) String json){ 
     System.out.println("Data recieved is:-"+json); 
     return "hello"; 
    } 
    } 

クライアント側コード: -

var params=({ 
      'UID': 'testdata' 
      }); 
$http({ 
      method: 'POST', 
      url: 'http://192.168.1.103:8081/ProjectName/registration.html', 
      headers: { 'Content-Type': 'application/json' }, 
      data:JSON.stringfy(params) 
     }).success(function(data){ 
       console.log("Success Call"); 
      }) 

      .error(function(data, status) { 
       console.log("Error Block"); 
      }) 
+0

AngularJSの質問には「角度」を付けないでください。 'angular'はAngularバージョン2以降です。ありがとうございます –

+0

私に見えるこの問題はAngularとはまったく関係がありません。サーバーエラーです。あなたのブラウザから 'http://192.168.1.103:8081/ProjectName/registration.html'を直接起動しようとしましたか? – yktoo

+0

はい、試しましたが、POSTではなくGET要求の場合にのみ動作します。私がコントローラのメソッドでGETメソッドの型を変更した場合、それは機能しますが、私はそれを望んでいません。メソッドをPOSTにするには、より多くのデータを送信する必要があります –

答えて

0

てみてくださいこれは:

    0123たとえば value = "/user-registration"のために多分 .htmlサフィックスが春を混乱させる原因、 http://192.168.1.103:8081/ProjectName/registration-userに他のリンク
  1. 変更http://192.168.1.103:8081/ProjectName/registration.htmlとの競合を避けるために
  2. 変更value = "/registration"
  3. それは、registration-userを春にregistrationに戻し、$httphttp://192.168.1.103:8081/ProjectName/registration.htmlサフィックスなし)に変更します。私はこの方法でweb.xmlのAJAXリクエストをマップすることはできないと考えています。
関連する問題