.net “无法在发布的Web API上发布数据”–405(不允许使用此方法)

.net “无法在发布的Web API上发布数据”–405(不允许使用此方法),.net,iis,cors,web-config,.net,Iis,Cors,Web Config,我使用angular 7,当我从本地机器将数据发布到web api时,它会工作,但当我在服务器上发布相同的web api时,我可以从api获取数据,但我无法发布数据。 我得到了CORS的错误 面对这个问题,WEB API是如何在服务器上发布的 我已经安装了CROS nuget软件包,但仍然无法解决这个问题 我尝试了web api更改,也安装了CORS包,还尝试了Angular中的代理配置,但它不起作用 错误:已被CORS策略阻止:请求的资源上不存在“Access Control Allow Or

我使用angular 7,当我从本地机器将数据发布到web api时,它会工作,但当我在服务器上发布相同的web api时,我可以从api获取数据,但我无法发布数据。 我得到了CORS的错误

面对这个问题,WEB API是如何在服务器上发布的

我已经安装了CROS nuget软件包,但仍然无法解决这个问题

我尝试了web api更改,也安装了CORS包,还尝试了Angular中的代理配置,但它不起作用

错误:已被CORS策略阻止:请求的资源上不存在“Access Control Allow Origin”标头

<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>
为Google Chrome浏览器下载此文件,并在点击本地主机时启用CORS。它应该解决这个问题

您可以阅读有关此错误原因的更多信息

可能导致此问题的事项:

从本地提供的文件命中服务器,从file:///YourApp/index.html 到 将请求从发送到的外部API。 将请求从发送到的内部API。 在同一主机上点击不同端口webapp打开时,API为 通过http从https请求,反之亦然,从 我已经用proxy.conf.js代替了 proxy.conf.json文件。在src文件夹中创建proxy.conf.js文件。和 在proxy.conf.js中编写如下代码

并将angular.json文件更改为


响应的HTTP状态代码是什么?您可以使用浏览器devtools中的网络窗格进行检查。这是4xx还是5xx错误,而不是200 OK成功响应?您好,我收到此错误:405方法不允许从源站访问XMLHttpRequest已被CORS策略阻止:请求的资源上不存在“访问控制允许源站”标头。这是对选项请求的响应,对吗?它指示的服务器http://10.1.5.13:9007/Api/Employee/UpdateEmployeeDetails/ 终结点未配置为允许选项请求。这与CORS配置不同。对于选项类型请求,我在应用程序_BeginRequest方法的web api的global.asax文件中的代码如下所示,if request.HttpMethod==OPTIONS{Response.StatusCode=intSystem.Net.HttpStatusCode.OK;Response.End;}但这也不起作用。谢谢回复。我也尝试过用于Chrome的CORS插件,但它也不起作用。
var HttpsProxyAgent = require('https-proxy-agent');
var proxyConfig = [{
  context: '/api',
  "target": "http://10.1.5.13:9007",
  secure: false
}];

function setupForCorporateProxy(proxyConfig) {
  var proxyServer = process.env.http_proxy || process.env.HTTP_PROXY;
  if (proxyServer) {
    var agent = new HttpsProxyAgent(proxyServer);
    console.log('Using corporate proxy server: ' + proxyServer);
    proxyConfig.forEach(function(entry) {
      entry.agent = agent;
    });
  }
  return proxyConfig;
}

module.exports = setupForCorporateProxy(proxyConfig);
"serve": {
          "builder": "@angular-devkit/build-angular:dev-server",
          "options": {
            "browserTarget": "AngularTestApp:build",
            "proxyConfig": "src/proxy.conf.js"
          }

Run NPM start after doing all changes.