$.getJSON('url','parameters/data',callback); $.ajax(options);
$.getJSON()是單純只能取JSON,比較簡單。
但我比較建議使用$.ajax(),因為它的功能比較完整且彈性,而且不只能取JSON而已,以下就以簡介第二種為主。
$.ajax()基本格式如下:
$.ajax({ url: "URL", data: {object}, type: "GET", dataType: "json", contentType: 'application/json; charset=utf-8', success: function(Jdata) { alert("SUCCESS!!!"); }, error: function() { alert("ERROR!!!"); } });
- url:資料來源的網址。
- data:物件格式。要傳給url的參數名稱和值。
- type:以GET或是POST傳遞。
- datatype:這裡的內容可分很多種,要看內容而定,大部份回傳的內容都是字串,所以就是text。而這裡的例子是json。
- success/error:可有可無。用來建立成功取得資料或失敗時要執行的程式。取得JSON後如何處理JSON可以參考這裡。
提供一個簡單的例子:
Javascript
$(function() { $("#btnAjax").click(function() { $.ajax({ url: '/Sample/GetJSON.ashx', data: { Name: 'Tim', Year: '30' }, type: 'GET', contentType: 'application/json; charset=utf-8', dataType: 'json', success: function(result) { alert('success! Name:' + result.Name); }, error: function() { alert('error'); } }); }); });GetJSON.ashx
public class GetJSON : IHttpHandler { public void ProcessRequest(HttpContext context) { //取得傳入的參數 string sName = context.Request.QueryString["Name"]; int sYear = Convert.ToInt32(context.Request.QueryString["Year"]); //建立要回傳的物件 objPerson objResult = new objPerson() { Name = sName, Year = sYear }; //將objResult物件序列化成JSON格式再回傳 context.Response.ContentType = "application/json"; context.Response.Charset = "utf-8"; context.Response.Write(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(objResult)); } private class objPerson { public string Name { get; set; } public int Year { get; set; } } public bool IsReusable { get { return false; } } }
連結aspx、asmx(web service)的說明可以觀看這篇。
謝謝分享,剛好需要用到!!
回覆刪除