一般的なフロントエンドとサーバデータの転送方法

1883 ワード

フロントエンドとサーバデータの転送方法には、次の2つがあります.
一、フォームとして提出する場合、jqueryのserialize()メソッドを用いてフォーム内容をa=11&b=22というフォーマットに変換して転送することができ、受信側はjavabeanで直接受信することができる.二、もう一つはjson形式で伝送され、受信時に直接beanで受信すると受信できない場合、バックエンドには2つの受信方式がある.
1.バックエンド用httpServiceletRequestでrequest.getParament(「フィールド名」)は、フロントエンドから送信されたデータを1つずつ受信する
2.@RequestBody方式では、jsonオブジェクトではなく、受信する必要があるjson列であることに注意し、送信前にJSONを使用することができる.stringify関数で処理します.(フォームをバックグラウンドにコミットする場合は、フォームフォーマットのデータをjson文字列フォーマットに変換する必要があります.コンポーネント「jquery.serializejson.js」を導入する必要があります.詳細は、「フロントエンド:formフォームをJsonデータに変換する」を参照してください.
@RequestBodyを使用して受信した例は次のとおりです.
//      
function onGetParam() {
    var data = liger.get("form2").getData();
   //alert(JSON.stringify(data));
   return JSON.stringify(data);
}
$.ajax({
    url:"mainRole/main_role_add",
    contentType:"application/json;charset=UTF-8",
    data:onGetParam(),
    dataType:"json",
    type:"post",
    success:function(data){
    @RequestMapping("/main_role_add")
    @ResponseBody
    public Map insertMainFlowRole(@RequestBody MainRole mainRole){
        Map resultMap = new HashMap();
        try {
            mainRoleService.insertMainFlowRole(mainRole);
            resultMap.put("status", 1);
        } catch (Exception e) {
            e.printStackTrace();
            resultMap.put("errMsg", e.getMessage());
        }
        return resultMap;
    }

この时、万事順調ではありません.大きな間違いを報告する可能性があります.私は現れました.間違いを報告する内容は以下の通りです.
The server responded with a status of 415(Unsupported Media Type)では、このようなエラーが発生しました.エラーの原因を以下のいくつかの面から探します.
1.フロントエンドajaxにcontentTypeが追加するかどうか:「アプリケーション/json;charset=UTF-8」の項2.xml構成に3を加える.持ち込みパッケージjackson-mapper-asl-1.9.13.jar