2016-07-06 15 views
0

我送以下Ajax請求mypage.jspJSP - 訪問Jquery的Ajax的數據

jQuery.ajax({ 
     type: "POST", 
     url: "../mypage.jsp", 
     data: { 
      param1: 'aaa', 
      param2: 'bbb' 
     }, 
     contentType: "text/html; charset=utf-8", 
     dataType: "text", 
     success: function (data) { 
      alert("Data Loaded: " + data);  
     } 
    }); 

在我mypage.jsp頁,我想下面訪問param1

String result = request.getParameter("param1"); 

result變得null

但是,當我更改我的ajax請求如下,我得到'aaa'作爲結果(這是所需的輸出)。

jQuery.ajax({ 
     type: "POST", 
     url: "../mypage.jsp?param1=aaa&param2=bbb", 
     data: {}, 
     contentType: "text/html; charset=utf-8", 
     dataType: "text", 
     success: function (data) { 
      alert("Data Loaded: " + data);  
     } 
    }); 

我是否使用正確的方法來訪問Ajax請求發送的數據?

我提到的一些文檔隱請求(HttpServletRequest的)對象,但也想不出來訪問比'request.getParameter()'

其他數據如何訪問param1沒有Ajax請求的URL發送任何其他合適的方法呢?

注意: 我也遇到了一個非常類似的SO問題'How to receive data sent by Ajax in a .jsp file',但它並沒有像我這樣使用'data'字段,因此認爲要問這個問題。

+0

嘗試使用參數名稱'param1':'aaa''或創建一個js對象來保存該對象的數據,然後調用該對象的'JSON.strigify(obj)'。 – ghg565

+0

我也將它改爲'$ .ajax()'。 – ghg565

回答

0

以下爲我工作,雖然我不確定這和問題中的請求是否相同。但是,這樣一來,我可以成功讀取參數:

new Ajax.Request('../mypage.jsp', { 
    method: 'POST', 
    asynchronous: false, 
    parameters: { 
     param1: 'aaa', 
     param2: 'bbb' 
    }, 
    onSuccess: function (data) { 
     alert("Data Loaded: " + data.responseText.trim()); 
    } 
}) 

注意,我不得不修改onSuccess功能(data.responseText.trim()),閱讀data的時候,因爲這裏data是一個對象。