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

时间:2019-06-24 14:12:24

标签: .net iis cors web-config

我正在使用angular 7,当我从本地计算机将数据发布到Web api时,它可以工作,但是当我在服务器上发布相同的Web api时,我可以从api获取数据,但是我不能发布数据。 我收到CORS错误。

针对此问题,在服务器上发布了WEB API。

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

我尝试过更改Web api,还安装了CORS软件包,还尝试了Angular中的Proxy config,但无法正常工作。

错误:“已被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>

2 个答案:

答案 0 :(得分:0)

  

我已经解决了使用“ proxy.conf.js”插入的问题   (proxy.conf.json)文件。在src文件夹中创建“ proxy.conf.js”文件。和   在“ proxy.conf.js”中编写如下代码。

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);
  

并将“ angular.json”文件更改为

"serve": {
          "builder": "@angular-devkit/build-angular:dev-server",
          "options": {
            "browserTarget": "AngularTestApp:build",
            "proxyConfig": "src/proxy.conf.js"
          }

Run NPM start after doing all changes.

答案 1 :(得分:-1)

为Google Chrome浏览器下载此CORS browser extension,并在访问本地主机时启用CORS。它应该解决问题。

您可以详细了解此错误原因here

  

可能导致此问题的原因: