jquery 請求返回的幾種方式


頁面代碼

<form id="form1" runat="server">
<div>
<p> Ajax請求ashx返回json數據的常見問題 </p>
<button type="button" id="btnrq">點擊請求數據</button>
</div>
<div id="iddiv"></div>
</form>

1   請求text數據,在success事件中手動解析    第一種返回json字符  

前台:

<script>
//第一種返回json字符
$(document).ready(function () {
$("#btnrq").click(function () {
$.ajax({
type: "post",
url: "Result.ashx",
data: { "name": "li" },
dataType: "text",
success: function (data) {
var json = eval('(' + data + ')')//為什么 加eval函數,本身的問題。 由於json是以”{}”的方式來開始以及結束的,在JS中,它會被當成一個語句塊來處理,所以必須強制性的將它轉換成一種表達式。
alert("性別:" + json.sex + ",愛好:" + json.interest);
// $("#iddiv").text(json.sex);
}
});

});
});
</script>

后台  :

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
// context.Response.Write("Hello World");
request(context);
}
void request(HttpContext context) {
var name = context.Request["name"];
if (name == "li") {
string json = "{\"sex\":\"男\",\"interest\":\"籃球\" }";
context.Response.Write(json);
context.Response.End();
}
}

2. 請求json數據,在success事件中手動解析    JQ自動解析   第二種返回json對象

前台:

<script>
//第一種返回json字符
$(document).ready(function () {
$("#btnrq").click(function () {
$.ajax({
type: "post",
url: "Result.ashx",
data: { "name": "li" },
dataType: "json",
success: function (data) {
//var json = eval('(' + data + ')')//為什么 加eval函數,本身的問題。 由於json是以”{}”的方式來開始以及結束的,在JS中,它會被當成一個語句塊來處理,所以必須強制性的將它轉換成一種表達式。 
alert("性別:" + json.sex + ",愛好:" + json.interest);
// $("#iddiv").text(json.sex);
}
});

});
});
</script>

后台  :

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
// context.Response.Write("Hello World");
request(context);
}
void request(HttpContext context) {
var name = context.Request["name"];
if (name == "li") {
string json = "{\"sex\":\"男\",\"interest\":\"籃球\" }";
context.Response.Write(json);
context.Response.End();
}
}

3.帶序列化text數據,在success事件中手動解析    返回帶序列化json對象

前台:

<script>
//第一種返回json字符
$(document).ready(function () {
$("#btnrq").click(function () {
$.ajax({
type: "post",
url: "Result.ashx",
data: { "name": "li" },

dataType: "text",
success: function (data) {
$("#iddiv").text(data);
var json = eval('(' + data + ')');//為什么 加eval函數,本身的問題。 由於json是以”{}”的方式來開始以及結束的,在JS中,它會被當成一個語句塊來處理,所以必須強制性的將它轉換成一種表達式。

var json1 =val("(" + data + ")");
//因為后台聲明的字符串,又序列化之后 所以在此處理兩次 (PS:偷個懶 下同)
alert("性別:" + json1.sex + ",愛好:" + json1.interest);
// $("#iddiv").text(json.sex);
}

});

});
});
</script>

后台  :

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
// context.Response.Write("Hello World");
request(context);
}
void request(HttpContext context) {
var name = context.Request["name"];
if (name == "li") {
string json = "{\"sex\":\"男\",\"interest\":\"籃球\" }";
JavaScriptSerializer js = new JavaScriptSerializer();   //   ASP.NET中的JSON序列化和反序列化還可以使用JavaScriptSerializer,在System.Web.Script.Serializatioin命名空間下,需引用System.Web.Extensions.dll.
var j=js.Serialize(json);
context.Response.Write(j);
context.Response.End();
}
}

4.帶序列化的json 前台自動解析:  第四種返回序列化的json對象

前台:

<script>
//第一種返回json字符
$(document).ready(function () {

$("#btnrq").click(function () {
$.ajax({
type: "post",
url: "Result.ashx",
data: { "name": "li" },

dataType: "json",
success: function (data) {
$("#iddiv").text(data);
alert("性別:" + json.sex + ",愛好:" + json.interest);
}


});

});
});
</script>

后台  :

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
// context.Response.Write("Hello World");
request(context);
}
void request(HttpContext context) {
var name = context.Request["name"];
if (name == "li") {
string json = "{\"sex\":\"男\",\"interest\":\"籃球\" }";
JavaScriptSerializer js = new JavaScriptSerializer();   //   ASP.NET中的JSON序列化和反序列化還可以使用JavaScriptSerializer,在System.Web.Script.Serializatioin命名空間下,需引用System.Web.Extensions.dll.
var j=js.Serialize(json);
context.Response.Write(j);
context.Response.End();
}
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM