我正在尝试使用来自ASP.Net Web服务的数据填充Dojo网格。会有很多行,所以我想在服务器端实现分页,因此Web服务将接受参数“start”和“count”。我已经非常接近了,通过使用QueryReadStore并重写“fetch”函数来添加其他参数(Web服务需要的不仅仅是启动和计数)。
我遇到的直接问题是Web服务将数据作为XML返回。我相信这是因为请求不包含指示json(网格需要)的首选项的Content-Type标头。我使用的是Http-Post而不是默认的Get。是否应该覆盖ResponseFormat属性?它对我不起作用。
那么,我如何将数据作为json获取?或者,我是在吠叫错误的树吗?将网格和Web服务粘合在一起似乎是很常见的事情。 Dojo是否有任何我不知道的内置功能?
由于
答案 0 :(得分:1)
您应该可以在调用handleAs
到dojo.xhrPost(..)
时简单地设置"xml"
参数,这会将XML绑定到javascript对象,以便在处理数据时让您的生活更轻松:
dojo.xhrPost({
url: "http://whatever.com/someendpoint",
handleAs: "xml",
load: function(response, ioArgs){
/*
* Do something with response, it's a JS object that reflects the XML.
*/
}
});
或者,您可以选择使用headers
的参数对象的dojo.xhrPost(..)
属性在AJAX调用中发送不同的HTTP标头:
dojo.xhrPost({
url: "http://whatever.com/someendpoint",
handleAs: "json",
headers: {
"Accept" : "text/javascript, text/json, application/json, application/javascript"
},
load: function(response, ioArgs){
/*
* Do something with response, it's a JS object that reflects the JSON.
*/
}
});