【发布时间】:2018-09-07 11:05:31
【问题描述】:
我正在尝试启动并运行一个新项目,我需要它来调用我在另一个项目中编写的现有 Web 服务。最终我的项目将被移动到与 Web 服务相同的 webapp 中,因此不会以这种方式在生产环境中运行。
我想允许从任何域调用 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。
编辑 我正在使用 asp.net WebAPI2 为我的应用程序提供 REST 端点。我只需要知道如何配置它们以允许任何域在不使用 CORS 的情况下访问它们。
【问题讨论】:
-
您需要从您的 Web api 应用程序访问您的 Web 服务吗?这是你的问题吗?
-
所以我有两台网络服务器:一台在端口 80 上,一台在端口 4200 上。网络服务托管在端口 80 上,应用程序在 4200 上运行。它们是完全不同的应用程序。
-
您应该能够将 Web 服务引用添加到您的 Web api 项目中。
-
@Hackerman 不,我不能。我的 Web 服务托管在 asp.net 中,但我通过 Angular CLI 运行我的应用程序。我不需要找到组合项目的方法,我需要一种方法来使这个场景工作。
-
你应该删除
asp.net-web-api标签并添加angular标签......并尝试在你的问题中添加尽可能多的细节......我会给它一个稍后拍摄!
标签: asp.net web-services cors cross-domain