首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用ASP.NET Web支持PUT和DELETE

使用ASP.NET Web支持PUT和DELETE
EN

Stack Overflow用户
提问于 2012-09-20 13:55:59
回答 5查看 55.3K关注 0票数 38

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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不允许访问-控制-允许-方法。 方法删除不允许访问-控制-允许-方法.

有什么额外的东西需要得到放置和删除动词跨域工作吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-09-20 14:11:33

它看起来像是添加了另一个自定义标头,将其排序如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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>
票数 54
EN

Stack Overflow用户

发布于 2012-12-20 16:06:10

此外,除了Nathan之外,请确保禁用了WebDAV IIS模块并在web.config中设置了runAllManagedModulesForAllRequests="true"设置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<system.webServer>
  <modules runAllManagedModulesForAllRequests="true">
    <remove name="WebDAVModule"/>
  </modules>
  <handlers>
    <remove name="WebDAV" />
  </handlers>
</system.webServer>

否则,preflight CORS requests (用于PUT、DELETE方法和发送附加选项请求)将无法工作。

票数 33
EN

Stack Overflow用户

发布于 2015-05-22 00:11:04

克服WEBAPI2.2中CORS问题的非常简单的解决方案。

在您的WebApi Config文件中添加以下内容。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var cors = new EnableCorsAttribute("*", "*", "*");
Config.EnableCors(cors);

添加之前,请确保删除Web.config文件中的自定义标头。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Credentials" value="true" />
    <add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept, X-Token" />
    <add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS" />

如果在WebApiconfig中同时启用了自定义头和CORS,您将面临cors错误。

添加在WebApi配置中启用的cors将解决这个问题。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12521499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文