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

时间:2015-02-01 13:11:31

标签: jquery asp.net-web-api

jQuery如何知道要返回的格式?例如,如果你返回IEnumerable,jQuery如何知道在成功回调中返回对象数组?或者如果JSON,同样的事情。你能指引我找一个关于它的链接,因为我似乎无法找到解释。

1 个答案:

答案 0 :(得分:2)

在响应中有一个标题告诉响应包含什么类型的mime,例如JSON:

Content-Type: application/json

但是没有"类型安全" REST通信中的客户端和服务器之间。客户端必须知道Web API的构造方式以及返回的数据类型。

如果响应是JSON,jQuery能够将其解析为JavaScript对象。如果响应是一个数组,则它包含在括号中:

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

ASP.NET Web API尝试以合适的方式发送响应,并首先查看Request中的标头,该标头告诉服务器客户端可以处理哪种响应:

Accept: application/json

或:

Accept: application/xml

ASP.NET Web API以合适的方式序列化响应,因此IEnumerable实例变为JSON数组。如果要强制响应为JSON,也可以在API中对此进行控制。