当您从 jQuery 调用 Web API 方法时,jQuery 如何知道 return 的格式?

When you call a Web API method from jQuery, how jQuery knows what format to return?

jQuery 怎么知道 return 的格式?例如,如果您 return IEnumerable,jQuery 如何知道成功回调中的 return 对象数组?或者如果 JSON,同样的事情。你能告诉我关于它的 link 吗,因为我似乎找不到解释。

回复中有一个 header 告诉 mime-type 回复包含什么,例如 JSON:

Content-Type: application/json

但是在 REST 通信中客户端和服务器之间没有 "type safety"。客户端必须知道 Web API 是如何构造的以及它返回的数据类型。

如果响应在 JSON 中,jQuery 能够将其解析为 JavaScript object(s)。如果响应是一个数组,它包含在方括号中:

[object1 { prop1: "aaa"}, object2 { prop1: "bbb"}]

ASP.NET Web API 尝试以合适的方式发送响应,并首先查看 Request 中的 header 告诉服务器客户端什么样的 Response可以处理:

Accept: application/json

或:

Accept: application/xml

ASP.NET Web API 以适当的方式序列化响应,因此 IEnumerable 例如变为 JSON-array。如果你想强制响应在 JSON.

中,你也可以在你的 API 中控制它