我正在尝试启动并运行一个新项目,我需要它来调用我在不同项目中编写的现有Web服务。最终,我的项目将被移动到与Web服务相同的Web应用程序中,因此不会以这种方式在生产中运行。
我想允许从任何域调用Web服务。我在web.config中设置了以下自定义标头:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,OPTIONS" />
<add name="Access-Control-Allow-Credentials" value="true" />
</customHeaders>
</httpProtocol>
这确实显示在IIS管理器中,但似乎对呼叫没有影响。我在拨打服务时仍然收到以下错误:
"The requested resource does not support http method 'OPTIONS'."
正如我所说,我只需要在开发中工作。我的Web服务项目与Microsoft CORS库不兼容,这就是我无法启用CORS的原因。
EDIT 我使用asp.net WebAPI2为我的应用程序提供REST端点。我只需要知道如何配置它们以允许任何域访问它们而不使用CORS。
答案 0 :(得分:1)
您可以实现的一个解决方案是在API的域中创建类似于Facade的代理j。
例如,您有一个WebAPI域api.example.com 因此,创建一个js-library(facade)来实现该API的使用逻辑。 该网址为http://api.example.com/script.js
因此,将该文件包含到每个项目中,并通过该js-facade使用您的API。