«Невозможно опубликовать данные в опубликованном веб-API» - 405 (метод не разрешен) - PullRequest
0 голосов
/ 24 июня 2019

Я использую Angular 7, и когда я отправляю данные в веб-интерфейс с локальной машины, он будет работать, но когда тот же веб-интерфейс я публикую на сервере, я могу получить данные из API, но я не могу опубликовать данные. Я получаю ошибку CORS.

Перед лицом этой проблемы, когда WEB API публикуется на сервере.

Я установил пакет CROS nuget, но все еще не могу решить проблему.

Я попытался изменить веб-API, также установил пакет CORS, также попробовал Proxy config в 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>

Ответы [ 2 ]

0 голосов
/ 27 июня 2019

Я решил проблему, используя файл "proxy.conf.js" из файла (proxy.conf.json).Создайте файл «proxy.conf.js» в папке src.и напишите код, как показано ниже в "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.
0 голосов
/ 24 июня 2019

Загрузите Расширение браузера CORS для браузера Google Chrome и включите CORS, когда вы нажимаете на localhost. Это должно решить проблему.

Подробнее о причине этой ошибки можно прочитать здесь

Вещи, которые могут вызвать эту проблему:

...