Asp.net OData查询选项,如$选择";期望xml响应时不工作

Asp.net OData查询选项,如$选择";期望xml响应时不工作,asp.net,asp.net-web-api,Asp.net,Asp.net Web Api,使用xml响应处理ODATA时遇到问题。在客户端获取内部服务器错误。我在服务器端调试代码,这里没有任何错误,正确的响应对象正在生成并从服务器端返回,但“500 internal server”错误正在客户端生成。当我们请求json响应时,同样的事情也可以很好地工作。当我点击url而没有“$select”正确的xml响应时,我想在这里添加的另一件事是生成。请在下面找到客户端和服务器端的代码 函数ConnectXML() { var url='1〕https://localhost:321/api

使用xml响应处理ODATA时遇到问题。在客户端获取内部服务器错误。我在服务器端调试代码,这里没有任何错误,正确的响应对象正在生成并从服务器端返回,但“500 internal server”错误正在客户端生成。当我们请求json响应时,同样的事情也可以很好地工作。当我点击url而没有“$select”正确的xml响应时,我想在这里添加的另一件事是生成。请在下面找到客户端和服务器端的代码

函数ConnectXML() { var url='1〕https://localhost:321/api/performance?$select=EmployeeID'; $.ajax({ 键入:“获取”, url:url, 数据类型:“xml”, 成功:函数(msg){alert('success');}, 错误:函数(msg){alert('Failed');} }); }
尝试在ajax请求中指定“accept”头:$.ajax({headers:{accept:{application/xml},…});我试过你的解决办法,但没有结果。而且我相信这并没有通过头球的链接。如果是这种情况,当我们在没有“$select”的情况下使用它时,它也会抛出错误。是的,您是对的。无论如何,检查Accept头是否为“application/atom+xml”(我刚刚了解到OData支持的是AtomPub)。同时检查[EnableQuery]属性是否具有AllowedQueryOptions。在操作方法中选择。如果是这种情况,则可能与尝试应用$Select查询的集合有关。OData在返回实体时会这样做,这就是为什么不能在action方法中捕获异常。尝试在发送响应之前捕获它,看看是否可以看到更多信息,例如使用DelegatingHandler。