jq+ajax接收ashx传回的json值问题

yyl8781697 2011-05-17 08:18:06
今天在学习jq接收json的值时遇到了这样一个问题
jq在接收json参数时一定要用eval() 才可以使用json,我修改了dataType还是不能使用json,那我该怎么直接可以使用json参数呢
先看下我的代码

$.ajax({
type: "GET",
url: 'AjaxHandler/json.ashx',
dataType: "html",
success: function (msg) {
var m = eval("(" + msg + ")");
$("#list").text(m.url);
},
error: function (errormsg) {
$("#list").val("出错了");
}
});

ashx页面

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write("{success:true,url:\"admin.aspx\"}");
}

我想直接在jq中使用msg.url来取值,不用eval,我该怎么设置,是dataType问题还是ashx页面中的contentType问题,
请各位高手帮帮忙
...全文
356 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
houyanjun 2011-05-17
  • 打赏
  • 举报
回复
加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始和结束标记,那么{}将会被认为是执行了一句空语句。所以下面两个执行结果是不同的:
alert(eval("{}"); // return undefined
alert(eval("({})");// return object[Object]

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧