Why do ASP.NET JSON web services return the result

2019-01-06 23:14发布

问题:

I wrote some ASP.NET web services that use JSON encoding, a la:

[WebInvoke()]
[OperationContract]
public int SetInformation(int recordid, string data)
{
    return 42;
}

and the returned JSON is:

{"d": 42}

Why is the parameter named d? Can I control that? Say, to e?

For reference, a few similar questions I've finally been able to dig up:

  • What does .d in JSON mean?
  • How to change ASP.NET WebMethod's 'd' identifier in a JSON response, to a different name?
  • Returning HTML from JSON webservice - what is the ".d"?

回答1:

This is a "security" feature that prevents the JSON from being returned from being able to be directly executed javascript inside an Eval statement. Or something very similar along these lines.

More information on this topic: http://encosia.com/a-breaking-change-between-versions-of-aspnet-ajax/ take a look at the section labeled Waiter, there’s a .d in my msg soup!