ASP.NET MVC 中不允许使用 POST 方法(使用 CORS)

Posted

技术标签:

【中文标题】ASP.NET MVC 中不允许使用 POST 方法(使用 CORS)【英文标题】:POST Method not allowed in ASP.NET MVC (using CORS) 【发布时间】:2018-04-08 19:10:16 【问题描述】:

我已经在 web.Server 元素中配置了 Web.Config。

<httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="http://localhost:xxxxx" />
        <add name="Access-Control-Allow-Headers" value="content-type" />
        <add name="Access-Control-Allow-Methods" value="GET, POST, OPTIONS, PUT, DELETE" />
      </customHeaders>
</httpProtocol>

当遇到 GET 请求时,所有数据都被检索。

当我想在请求中发布新元素时,我得到错误 405 方法不允许。 可能是什么原因?

请求示例: 一般:

Request URL:http://localhost:xxxxx/api/company
Request Method:OPTIONS
Status Code:405 Method Not Allowed

响应标头:

Access-Control-Allow-Headers:content-type
Access-Control-Allow-Methods:GET, POST, OPTIONS, PUT, DELETE
Access-Control-Allow-Origin:http://localhost:yyyyy
Allow:GET,POST
Cache-Control:no-cache
Content-Length:76
Content-Type:application/json; charset=utf-8

请求标头:

Accept:*/*
Accept-Encoding:gzip, deflate, br
Accept-Language:pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4
Access-Control-Request-Headers:content-type
Access-Control-Request-Method:POST
Connection:keep-alive
Host:localhost:xxxxx
Origin:http://localhost:yyyyy
Referer:http://localhost:yyyyy/ddddd/zzzzzz

【问题讨论】:

发布您的 POST 方法/端点 :) @TezWingfield 更新请求示例。 谢谢,可以添加你的post方式吗?所以我们可以解决任何代码问题。 我为什么使用syncfusion javascript @mjwills 请求 URL:localhost:xxxxx/api/company。就像我介绍的那样,CORS 仅在 web.config 中。 【参考方案1】:

我相信 Access-Control-Allow-Origin 应该是“*”。那么它可能会起作用。

【讨论】:

同样的结果。

以上是关于ASP.NET MVC 中不允许使用 POST 方法(使用 CORS)的主要内容,如果未能解决你的问题,请参考以下文章

文件上传到 ASP。 NET MVC 6 不工作

ASP.NET MVC API与JS进行POST请求时传递参数 -CHPowerljp原创

405 方法不允许 - ASP.NET Web API

CORS:使用 ASP.NET 4.5.1 MVC 的 Rest API

javascript的“更改”函数在asp.net mvc中不起作用

ASP.NET MVC Razor Url.Action 在 Internet Explorer 8 中不起作用