1、$.get
$.get()方法使用GET方式來進行非同步請求,它的語法結構為:
$.get( url [, data] [, callback] )
#解釋這個函數的各個參數:
url:string類型, ajax請求的地址。
data:可選參數,object類型,發送到伺服器的key/value資料會作為QueryString附加到請求URL中。
callback:可選參數,function類型,當ajax返回成功時自動呼叫函數。
最後寫一個$.get()的實例供大家參考:
# |
$.get( "submit.aspx", { id: 》 function(data,state){ |
|
3、$.getJSON()
$.getJSON()是專門為ajax取得json資料而設定的,並且支援跨域調用,其語法的格式為:
getJSON(url,[data],[callback])
url:string類型, 傳送請求位址
data :可選參數, 待發送Key/value 參數,同get,post類型的data
callback :可選參數,載入成功時回呼函數,同get,post類型的callback
#JSON 是一種理想的資料傳輸格式,它能夠很好的融合與JavaScript或其他宿主語言,並且可以被JS直接使用。使用JSON相比傳統的透過 GET、POST直接發送「裸體」數據,在結構上更為合理,也更為安全。至於jQuery的getJSON()函數,只是設定了JSON參數的 ajax()函數的一個簡化版本。這個函數也是可以跨域使用的,比起get()、post()有一定優勢。另外這個函數可以透過把請求url寫 成"myurl?callback=X"這種格式,讓程式執行回呼函數X。
提示:資料最終還是透過url後面透過get方式發送資料出去的,這就決定了,發送的data資料量不能太多,否則造成url太長接收失敗(getJSON方式是不可能有post方式遞交的)。
4、$.ajax()
$.ajax()是jquery中通用的一個ajax封裝,其語法的格式為:
$.ajax(options)
其中options是一個object類型,它指明了本次ajax呼叫的具體參數,這裡我把最常用的幾個參數附上方
$.ajax({ url: 'submit.aspx', datatype: "json", type: 'post', success: function (e) { //成功後回調 alert(e); }, alert(e ); }, # beforeSend: function(){ //送出請求前呼叫,可以放一些正在載入" alert("載入中"); #}})#Oh | }})
注意要引入jquery mobile 套件
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title><script type ="text/javascript" src = "jquery-1.6.4.min.js"></script></head> <script type = "text/javascript"> $(function(){ $("#button1").click(function(){ //用getJSON方法获取后台传递过来的JSON对象数组 $.getJSON("http://10.65.9.181:8090/jq_test_server/2.jsp",function(data){ //调用each方法进行数组遍历 $.each(data,function(index,item){ //alert(data); //alert(item.username); 依次打印所有的username //alert(item); //打印出遍历的username的最后一个,因为之前的username会被后者覆盖//打印zxy $("#button1").html(item.username); }); }); }); $("#button2").click(function(){ //用get方法获取后台传递过来的json字符串,注意是字符串 $.get("http://10.65.9.181:8090/jq_test_server/2.jsp",function(data){ //alert(data); //将字符串转化为json对象 data = JSON.parse(data); $("#button2").html(data[1].username); }); }); $("#button3").click(function(){ //用post方法获取后台传递过来的json字符串,注意是字符串 $.post("http://10.65.9.181:8090/jq_test_server/2.jsp",function(data){ //alert(data); //将字符串转化为json对象 data = JSON.parse(data); $("#button3").html(data[1].username); }); }); $("#button4").click(function(){ //采用ajax方式获取json字符串 $.ajax({ type:"GET", url:"http://10.65.9.181:8090/jq_test_server/2.jsp", success:function(data){ //强制转换为json对象 data = JSON.parse(data); //打印的是对象数组里面的第一个值对应的username $("#button4").html(data[0].username); } }); }); }); </script> <body> <a id = "button1" href = "#">getJSON方法</a> <a id = "button2" href = "#">get方法</a> <a id = "button3" href = "#">post方法</a> <a id = "button4" href = "#">ajax方法</a> </body> </html>
注意要引入org.json套件
#
<%@ page language="java" import="java.util.*,java.sql.*,org.json.*" pageEncoding="utf-8"%>
response.setHeader("Access-Control-Allow-Origin", "*");
<%@ page language="java" import="java.util.*,java.sql.*,org.json.*" pageEncoding="utf-8"%> <% response.setHeader("Access-Control-Allow-Origin", "*");//注意这句话控制js访问权限 String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <% String url = "jdbc:mysql://localhost:3306/jquery"; String user = "root"; String pass = "root"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(url, user, pass); String sql = "select uid,username,imgurl,age from test1"; pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); // json数组 JSONArray array = new JSONArray(); // 获取列数 ResultSetMetaData metaData = rs.getMetaData(); int columnCount = metaData.getColumnCount(); // 遍历ResultSet中的每条数据 while (rs.next()) { JSONObject jsonObj = new JSONObject(); // 遍历每一列 for (int i = 1; i <= columnCount; i++) { String columnName = metaData.getColumnLabel(i); String value = rs.getString(columnName); jsonObj.put(columnName, value); } array.put(jsonObj); } System.out .println("======================返回的是json对象转化成的字符串=================="); System.out.println(array.toString()); out.print(array.toString()); } catch (Exception e) { e.printStackTrace(); } %>
以上是jQuery中$.get、$.post、$.getJSON和$.ajax的用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!