在EnableCors和向web.config添加标头后,Access-Control-Allow-Origin标头没有响应?

时间:2015-09-28 14:56:10

标签: cors asp.net-web-api2

我为Web Api启用了CORS,并为web.config添加了自定义标头,但我一直收到错误:

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:59445' is therefore not allowed access. The response had HTTP status code 503.

在我的WebApi控制器中,我将它放在我的控制器顶部:

[EnableCors("*", "*", "*")]

我在我的Web Api web.config中指定了以下内容(我没有在网站web.config中添加任何内容):

<customHeaders>
  <add name="Access-Control-Allow-Origin" value="*" />
  <add name="Access-Control-Allow-Headers" value="*" />
  <add name="Access-Control-Allow-Methods" value="POST" />
</customHeaders>

我在config.EnableCors()中呼叫WebApiConfig.cs。当我检查chrome或firefox中的响应标头时,我看不到Access-Controll-Allow-Origin标头。有什么我想念的吗?

我决定从头开始试图重现这个问题。这些是我采取的步骤:

  1. 我删除了CORS包
  2. 然后我尝试访问localhost上的api,并收到错误信息。
  3. 我重新安装了CORS pacakges并进行了配置。
  4. 我再次尝试使用localhost,它运行正常,没有跨域错误。
  5. 我部署到我的网站和api,当我尝试通过网站访问api时,我收到了跨域错误。我的api具有以下命名结构:api.sub.website.com
  6. 我正在部署到azure,所以我现在很难过,不知道我还有其他选择吗?

0 个答案:

没有答案