$.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)的說明可以觀看這篇。
謝謝分享,剛好需要用到!!
回覆刪除