У меня очень простое приложение OpenRasta с ресурсом Home с одностроковым свойством Title (прямо из примера с документом сообщества OpenRasta).
Я настроил контракты данных XML и JSON для ресурса следующим образом:
ResourceSpace.Has.ResourcesOfType<Home>()
.AtUri("/home")
.HandledBy<HomeHandler>()
.AsXmlDataContract()
.And.AsJsonDataContract();
Из jQuery я могу получать данные JSON просто отлично. Однако, когда я делаю JQuery XML Ajax-запрос, я получаю данные JSON.
Мой код jQuery выглядит так:
$.ajax(
{
url: "/home",
dataType: "xml",
success: function(result) {
$('#xmlSpan').append($(result).find('Title').text());
},
error: function(request, status, ex) {
$('#xmlSpan').append('error: ');
$('#xmlSpan').append(status + ', ');
$('#xmlSpan').append(ex.toString());
}
});
Добавляемая информация об ошибке выглядит так:
ошибка: parsererror, TypeError: a is null
Но вот интересная часть. От Fiddler мой запрос выглядит так:
GET http://127.0.0.1:51041/home HTTP/1.1
Host: 127.0.0.1:51041
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8
Accept: application/xml, text/xml, */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
X-Requested-With: XMLHttpRequest
Referer: http://ipv4.fiddler:51041/WebForm1.aspx
Cache-Control: max-age=0
... и мой ответ выглядит так:
HTTP/1.1 200 OK
Server: ASP.NET Development Server/9.0.0.0
Date: Thu, 04 Mar 2010 18:30:04 GMT
X-AspNet-Version: 2.0.50727
Content-Length: 18
Cache-Control: private
Content-Type: application/json; q=0.5
Connection: Close
{"Title":"Foooo!"}
Мой запрос приходит как «Accept: application / xml», но ответ «application / json» (и возвращаемые данные, очевидно, json).
Что я делаю не так?