2017-04-26 16 views
0

データをデリバリするためにajaxコールを行う必要があります。奇妙なことは、データがapperentlyコントローラ内のアクションに送信されないことである。Grails:コントローラのparams変数にAjaxコールのデータが表示されない

これは私のAJAX呼び出しです:

var params = [id: "3", version: "58", selected: "true", format: "json"] 

$.ajax({ 
      type: "POST", 
      cache: false, 
      url: "/selection/ajaxUpdate", 
      dataType: 'json', 
      data: params, 
      success:function(data,textStatus){ 
       console.log("success: ",data) 
      }, 
      error:function(XMLHttpRequest,textStatus,errorThrown){ 
       console.log("error: ",XMLHttpRequest) 
      } 
     }); 

これは、コントローラの私の行動である「選択」:

@Transactional  
def ajaxUpdate(){ 

    println params 
    .... other stuff ... 
} 

のprintln paramsはコマンドだけ出力: "[コントローラー:選択、フォーマット:ヌル、アクション:ajaxUpdate" のでアクションが明らかと呼ばれるのprintlnの

、BUアヤックスのパラメータなしのt :(

誰にも解決策はありますか?何ダムJS間違い:事前

+0

は、あなたはそれが通常のGrailsのparamsになりたいですmain.gsp#L233-L241このようなことを試して、上のparamsをvar params = {id: "3"、version: "58"、selected: "true"}に置き換え、 'data:$( ' #search ')。serialize()、 '' data:params、 ' – Vahid

答えて

0

ヴァヒドが正しいと受け入れるようにGrailsの行動を指示する必要があります。もちろん、配列[]ではなくjson-object {}としてパラメータを設定する必要があります。したがって、この1作品:https://github.com/vahidhedayati/grails-queuemail-plugin/blob/master/grails-app/views/queueMail/もしそうなら

{id: "3", version: "58", selected: "true", format: "json"} 
1

ThxをあなたはJSONのparams

@Transactional  
def ajaxUpdate(){ 
    def jsonParams = request.JSON 
    println jsonParams // this will print the ajax params 

    println params 
    .... other stuff ... 
} 
+0

は必要ありません:) – pebbles

関連する問題