2011年2月24日 星期四

jQuery AJAX http post

使用 jquery 達成 AJAX 方式很簡單,可以參考 jQuery 教學

在此簡單的 紀錄一下 HTTP POST 的function


$.post(URL,{ParameterName1:ParameterValue1,ParameterName2:ParameterValue2,...},
function(data){
alert(data);
}, Type);

---------------------------------------------------------------------------------

URL 目標的網址
ParameterName 變數名稱
ParameterValue 變數值
data 回傳值,也就是目標網址用網頁開會看到的東西
Type 返回的資料類型 有以下 :"xml", "html", "script", "json", "jsonp", "text"

---------------------------------------------------------------------------------


舉裡來說我要送的位置是 test.jsp, 變數有 Name 和 Id , Name= "A", Id="001" ,
不過 json 讀取是怪怪的,這裡先用text

程式如下

$.post("testServlet",{Name:"A",Id:"001"},
function(data){
alert(data);

var result = eval("(" + data + ")");
alert(data.Name);
alert(data.Id);
}, "text");



testServlet :

public class testServlet extends HttpServlet{
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws IOException {

/// get content
String _Name = req.getParameter("Name");
String _Id= req.getParameter("Id");


resp.setContentType("text/plain; charset=utf-8");

resp.getWriter().println("{\"Name\":"+ "\""+_Name+"\"" +
"," + "\"Id\":"+ "\""+_Id +"\"" +
"}");

}


}



-----------------------------

這裡要說的是

回傳型態 直接傳 json 的 話 ,還是沒辦法解讀, 如 大灰狼教成網 就有相關的討論


但若傳純文字的話,解譯也是蠻麻煩的,所以可以將回傳值 利用 eval json 的方式 來解決這個問題 CodeBit



參考
1. jQuery 教學
2. jQuery 官網
3. 大灰狼教成網
4. CodeBit

沒有留言: