您的位置:首页 > Web前端 > JQuery

使用ashx文件响应来自JQuery的JSON请求

2010-06-06 20:40 537 查看
看看JS代码:

function getSecondaryContent(menuId)

{ $.getJSON("Article/FreshNews.ashx", function(data)

{

var txt = "<ul class=\"news\">";

$.each(data,function(i,n){

if(n.Url == "#") txt += "<li><a href=\"#\">"+ n.Title +"</a></li>";

else

txt += "<li><a href=\""+ n.Url +"\" target=\"_blank\">"+ n.Title +"</a></li>";

});

txt += "</ul>";

$("#"+menuId).after(txt); });}

ashx文件如下:

public void ProcessRequest(HttpContext context)

{

//context.Response.ContentType = "text/plain";

context.Response.ContentType = "application/json";

context.Response.Charset = "utf-8";

string txt = "[{\"Title\":\"学习使用AJAX技术\",\"Url\":\"#\",\"ArticleId\":\"Art1234\"},{\"Title\":\"使用JQuery构建网站\",\"Url\":\"#\",\"ArticleId\":\"Art1235\"},{\"Title\":\"使用JSON文件传输数据\",\"Url\":\"#\",\"ArticleId\":\"Art1236\"}]"; context.Response.Write(txt); }

public bool IsReusable {

get

{

return false;

}

}}

还有一个小插曲:因为我在web.config里面的设置是:

webconfig<globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" responseHeaderEncoding="utf-8" />就是因为JSON文件只支持Unicode编码,所以我就一狠心将所有编码都改成utf-8,想着这样做就一定没有错了.谁知道,js接收的数据中文死活是乱码,无论我怎么设置ContentType都是一样,差点没有把我气疯.

后来千辛万苦才想起好像这些编码和当前区域设置有关,续步尝试之下,发现只有将fileEncoding设置为"gb2312"才算正确获取到数据:

right config<globalization fileEncoding="gb2312" requestEncoding="utf-8" responseEncoding="utf-8" responseHeaderEncoding="utf-8" />

忘了顺便说一句:在ashx文件用使用Session必须实现 IRequiresSessionState 接口

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhangsong66/archive/2010/04/26/5529629.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐