我正在使用ASP.NET WebAPI RC,并托管一个没有任何花哨的API控制器.使用JSON一切正常,但我正在测试使用Accepts标头请求不同的格式,这就是我遇到麻烦的地方.
我正在使用jQuery发出AJAX请求,并设置请求的'dataType'参数.这将正确设置相应的Accept标头,如下所示.
$.ajax({
type: method,
url: url,
dataType: "xml",
data: data || null,
success: function (data) {
// omitted
}
});
Run Code Online (Sandbox Code Playgroud)
这是fiddler请求/响应的保存.正如您所见,Accept标头显示了application/xml,但WebAPI返回了JSON.我也尝试手动将Accept标头设置为"application/xml"(因此它也没有text/html的东西),但无济于事.
我错过了什么?(注意:我已经在数据中剪断了一些机密信息,但没有对其进行调整)
GET http://localhost/insp**snip**6716 HTTP/1.1
Host: localhost
Connection: keep-alive
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.60 Safari/537.1
Accept: application/xml, text/xml, */*; q=0.01
Referer: http://localhost/inspector/api/test?
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: m=34e2:|2c69:t|47ba:t|4e99:t; .INSPECTOR3COOKIE=08BA683091E2A457B1832E9B*snip*F911D9ED97076
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319 …Run Code Online (Sandbox Code Playgroud)