我有一个ODataController,如果我只是通过我的浏览器进行GET,它似乎工作正常。但是当我使用JayData阅读时,我得到500回。我可以看到在我的ODataController中调用GetItems()并返回一个有效的Items列表。我,但我看到一些ODataContentTypeException异常被抛出,其中包含以下消息:
其他信息:找不到与响应的内容类型匹配的受支持的MIME类型。没有受支持的类型'application / atom + xml; type = feed,application / atom + xml,application / json; odata = verbose,application / json'匹配内容类型'application / json;的OData = fullmetadata;字符集= UTF-8' 。
然后
其他信息:找不到与响应的内容类型匹配的受支持的MIME类型。没有受支持的类型'application / atom + xml; type = feed,application / atom + xml,application / json; odata = verbose,application / json'匹配内容类型'application / json;的OData = fullmetadata;字符集= UTF-8' 。
然后
其他信息:找不到与响应的内容类型匹配的受支持的MIME类型。没有受支持的类型'application / xml,application / json; odata = verbose,application / json'匹配内容类型'application / json;的OData = fullmetadata;字符集= UTF-8' 。
最后
其他信息:找不到与响应的内容类型匹配的受支持的MIME类型。没有受支持的类型'application / xml,application / json; odata = verbose,application / json'匹配内容类型'application / json;的OData = fullmetadata;字符集= UTF-8' 。
我认为这些是我回来的500的原因,但似乎没有一种方法可以确定。 根据Chrome,发送的请求请求以下内容:
接受:application / atomsvc + xml; q = 0.8,application / json; odata = fullmetadata; q = 0.7,application / json; q = 0.5, / ; q = 0.1
接受编码:gzip,放气,SDCH
收到500错误的空响应。其他人有这个麻烦吗?
接受语言:EN-US,EN; Q = 0.8,EN-CA; Q = 0.6
答案 0 :(得分:4)
为了使这个解决方案有意义,需要更多信息:使用MVC5,使用WebAPI 2.0和OData nuget包版本5.0
由于某些原因,JayData正在尝试使用OData v2。所以为了修复它,我挖掘了源代码,发现你可以指定V3。
更改上下文的配置以包含maxDataServiceVersion:“3.0”。
由此:
dbContext = new MyEntities({ name: 'oData', oDataServiceHost: '/odata' }));
对此:
dbContext = new MyEntities({ name: 'oData', oDataServiceHost: '/odata', maxDataServiceVersion: '3.0' }));
这对我有用。
如果JayStack会记录可用的配置选项,那就太好了。