2016-03-31 13 views
0

私はAngular JSの新しい初心者です。私はjspページからのデータを提出しようとしています。 Pojoオブジェクトにデータを注入しようとしています。しかし、私は '415サポートされていない'と言って例外が出てきています。私が間違っていたところで私を助けてください。サポートされていないメディアタイプanglejs

JSPページ:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Testing Tool</title> 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.5/angular.min.js"></script> 
<script type="text/javascript"> 
var apps=angular.module('sampleApps',[]); 
apps.controller('formController',function($scope, $http) 
     { 

    $scope.register=function() 
    { 
     var name=$scope.name; 
     var address=$scope.address; 
     alert(name + " , "+address); 
     var formData = { 
        name  : name, 
        address : address 
       }; 
     $http({ 
       method : "POST", 
       url : "userdetails", 
       contentType: 'application/json', 
       mimeType: 'application/json', 
       /* data: {name: name,address:address} */ 
       data:formData 
       }).then(function mySucces(response) { 
       //$scope.myWelcome = response.data; 
       alert("Success"); 
       }, function myError(response) { 
        alert(response); 
       // $scope.myWelcome = response.statusText; 
       }); 

    }; 

     }); 
</script> 
</head> 
<body data-ng-app="sampleApps"> 
<div ng-controller="formController"> 
     Name: <br/> 
     <input type="text" name="name" ng-model="name"/><br/> 
     Address: <br/> 
     <input type="text" name="address" ng-model="address"/><br/> 

     <input type="button" value="submit" ng-click="register()"> 
</div> 
</body> 
</html> 

コントローラー:

@RequestMapping(value="/userdetails") 
    public @ResponseBody User getUserDetails(HttpServletRequest request,@RequestBody User data) 
    { 
     System.out.println(data); 
     return data; 
    } 

POJOクラス:

public class User implements Serializable 
{ 

    /** 
    * 
    */ 
    private static final long serialVersionUID = 1L; 
    private String name; 
    private String address; 

    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 
    public String getAddress() { 
     return address; 
    } 
    public void setAddress(String address) { 
     this.address = address; 
    } 
} 
+1

あなたが使用しているより長い表記法の代わりにAngularの '$ http.post'短縮形を使ってみてください。 'content-type'や' mime-type'を手作業で提供することで、あなたはそれを乱すかもしれません。 – glcheetham

+0

私もショートカットを使用しても、同じ例外が発生しています – Navyah

答えて

0

私はあなたがデータを追加する必要があると思う:FORMDATA =>データ:JSON .stringify(formData)

これが役立つかどうかを確認してください

乾杯!

+0

こんにちはChetan、私はデータを追加してみました:JSON.stringify(formData)。それでもうまくいきませんでした。私は瓶ジャクソン-jaxrs-1.9.2.jar ジャクソン-XC-1.9.2.jar ジャージー-クライアント1.18.jar ジャージー-JSON-1.18.jar ジャージーサーバ1.18.jar を追加しましたjersey-core-1.18.jar jersey-servlet-1.18.jar jsr311-api-1.1.1.jar – Navyah

+0

このURLから確認してください http://stackoverflow.com/questions/17560258/pass-array-data- from-javascript-in-browser-to-spring-mvc-controller-using-ajax/36174953#36174953 私はあなたのオブジェクトに置き換えることができる文字列配列を渡しました、そして、ユーザーとして –

0

あなたのタグに基づいて、私はあなたにSpring MVCを使用することを勧めました。春のWebパッケージ用の新しいロガーを追加するだけです。パッケージorg.springframework.webのログレベルをDEBUGに上げると、415エラーの根本原因がわかります。ここで

はlogbackを使用してexempleです:

<configuration> 
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
     <encoder> 
      <pattern>%d [%thread] %-5level %logger{36} - %msg%n</pattern> 
     </encoder> 
    </appender> 

    <logger name="org.springframework.web" level="DEBUG" /> 

    <root level="info"> 
     <appender-ref ref="STDOUT" /> 
    </root> 
</configuration> 

あなたのHTTPリクエストによって解決すべての要求のマッピングのトレースをも持っています。

幸運。

関連する問題