Jaydata与.NET Odata服务器

5
我正在使用JayData作为客户端,.NET OData作为服务器,但是当我请求服务器时,它给了我501未实现的错误。当我搜索时,发现问题是CORS(跨域资源共享)。有没有办法在OData服务器或IIS上启用CORS?我的代码很简单,只需创建服务上下文并获取实体。解决方案之一是在web.config中放置特殊配置部分。
 <httpProtocol>
     <customHeaders>
      <add name="Access-Control-Allow-Origin" value="*" />
    </customHeaders>
 </httpProtocol>

但这并不能解决问题。

整个过程中我的 Chrome 浏览器的视图

记住,我正在使用OData [RESTful] 服务和JayData作为客户端。
2个回答

4
这是因为没有处理 OPTIONS 预检请求。您需要拦截它们。请参见 此问题 以了解如何做到这一点,以及 一些重要说明更新:我链接的问题假定使用 WCF 数据服务实现。如果您使用其他东西,则必须编辑您的问题或自行搜索特定于实现的方法。

1
使用Chrome开发者工具、Firebug或Fiddler查看网络请求情况。你使用的是哪个浏览器?旧版IE无法处理CORS。

几乎可以确定这不是客户端问题。 - tne
1
OData需要特定的标头,因此服务器必须明确允许这些标头,我写了一篇博客文章,链接为:http://jaydata.org/blog/misery-with-cors ,你需要为IIS创建类似的配置。 - Gabor Dolla
我已经尝试了网上提供的所有解决方案,但仍然遇到501未实现的错误。 - Numan Hanif

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接