【问题标题】:Returning a JSON object from a PageMethod with custom formatting从具有自定义格式的 PageMethod 返回 JSON 对象
【发布时间】:2009-01-23 21:46:17
【问题描述】:

是否可以格式化从 PageMethod 将对象返回为 JSON 的方式? IE。从数据中删除第一个“d”元素,而无需从头开始编写 JSON。

发件人:
{ "d": { "name": "bob", "email": "bob@example.com" } }


{ "name": "bob", email: "bob@example.com" }

【问题讨论】:

  • 你有页面逻辑的例子吗?
  • 什么原因要删除?

标签: asp.net json pagemethods


【解决方案1】:

额外的"d" 参数由.NET 框架添加,作为针对XSS 攻击的附加安全措施[source]。当请求的"Content-Type" 指定"application/json" 时包含它。

认为如果您只是将请求的"Content-Type" 指定为@ 以外的其他内容,则可以让框架将其排除(即不要将结果包装在"d" 中) 987654327@。尝试从请求中删除该标头(如果可以的话)并查看 .NET 返回的内容。

【讨论】:

  • 不幸的是,您必须使用此内容类型以 JSON 格式返回数据,其他任何方法都不起作用。我想我需要从另一个角度来看这个问题,即。让 ExtJS 接受这种格式的 JSON。谢谢。
【解决方案2】:

没有。 Microsoft 的 JSON 序列化程序出于某种原因在服务器端添加了 d,而反序列化 JSON 字符串的客户端 AJAX 代码期望它存在。

【讨论】:

    猜你喜欢
    • 2012-10-10
    • 2014-09-14
    • 2012-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 1970-01-01
    相关资源
    最近更新 更多