我正在使用ASP.NET Web API的最终版本来实现一个JavaScript友好的API.根据各种教程,我在web.config中启用了CORS:

<system.webServer>
 <httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Headers" value="Content-Type" />
  </customHeaders>
 </httpProtocol>
</system.webServer>

使用上述方法,跨域GET和POST请求可以正常工作,但PUT和DELETE请求都失败.

在Chrome中:

访问控制允许方法不允许方法PUT.

访问控制允许方法不允许方法删除.

在跨域执行PUT和DELETE动词时,是否还需要其他操作?

推荐答案

看起来像是添加了另一个自定义标题:

<system.webServer>
 <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" />
  </customHeaders>
 </httpProtocol>
</system.webServer>

Asp.net相关问答推荐

如何格式化搜索字符串以从 Razor 页表中的多个列返回部分搜索字符串?

我可以强制刷新我的样式表文件吗?

此版本的 SQL Server 不支持用户实例登录标志.连接将关闭

你能从请求变量中确定时区吗?

ASP.NET Response.Redirect 使用 302 而不是 301

iframe.readyState 在 chrome 中不起作用

模型项的类型为 CookMeIndexViewModel,但需要类型为 IEnumerable 的模型项

ASP.NET Core 中的授权. [Authorize] 属性总是 401 Unauthorized

Gridview ItemTemplate 中多个判断字段的最佳技术?

IIS 7.5 上没有 asp.net 功能

HTTP 错误 401.3 - 未经授权

IIS 6.0 通配符映射基准?

如何为角色以及特定用户使用自定义授权属性?

从后面的 asp.net 代码中读取表单身份验证 cookie

在 asp.net 中将 JSON 转换为 .Net 对象时出错

如何针对异常需求自定义 ASP.NET Web API AuthorizeAttribute

InvalidOperationException:无法为角色创建 DbSet,因为此类型未包含在上下文模型中

如何将我的 DDD 模型中的用户与身份验证用户集成?

在c#中显示带有换行符的标签文本

如何判断字符串的第一个字符是否是字母,C#中的任何字母