【发布时间】:2013-12-29 11:25:57
【问题描述】:
我在使用 MS WebAPI 和 ExtJS 时遇到问题
ExtJS 执行 API 调用
proxy : {
type : 'ajax',
noCache: false,
pageParam: false,
startParam: false,
limitParam: false,
extraParams: {
param1 : var1,
param2 : var2,
},
api: {
read : 'api/DataSource',
},
我的 Web API 应用程序返回 XML(我可以在 FireBug 中看到)。
[System.Web.Http.AcceptVerbs("GET", "POST")]
[System.Web.Http.HttpGet]
public DataModel DataSource(int debug=0)
{
DataSource dataSource = new dataSource();
...
return dataSource
}
我能想到的原因只有一个,为什么会返回 xml: Firefox 不会在此 ExtJS json 调用中专门要求 application/json。 如果我将 Firefox 的默认 AcceptHeaders 更改为对 json 更友好的 AcceptHeaders,则会返回 JSON。
由于用户不必更改其浏览器设置,我看到了两种解决方案:
-> 告诉 Javascript 请求 application/json。
-> 或者告诉 MS 总是返回 json。
我更喜欢选项 1,但我不知道是否或如何更改?
【问题讨论】:
-
你能发布控制器动作的代码吗?
-
哪个控制器? WebAPI 控制器还是 ExtJS 控制器?
-
如果你想要 Json,你需要 webApi 动作来返回一个 Json 结果。
-
如果没有人正确设置和评估它们,为什么这些接受头存在?
-
如果您可以访问 web api 项目,您可以按照 Darrel Miller 下面的建议进行操作。
标签: javascript xml json extjs asp.net-web-api