localhost и localhost: проблема с 4200 CORS в angular

#angular #api #iis #cors #localhost

#angular #API #iis #cors #localhost

Вопрос:

Я перепробовал все возможные способы, найденные в we, чтобы решить проблему CORS в angular во время выполнения кода VS с использованием ng serve

  1. Внедрил prox.conf.json, а затем запустил

ng serve —конфигурация прокси-сервера proxy.conf.json

 {
  "/`OSTNextService`": {

    "target": "https://localhost/OSTNextService",
    "secure": true,
    "pathRewrite": {
    "^/OSTNextService": ""
  },


"`changeOrigin": true`
  }
}
 
  1. установите для заголовка IIS значение specif domain. в моем случае https://localhost:4200
    введите описание изображения здесь
  2. настройка файла service global.asax

    введите описание изображения здесь

У меня ничего не работает, и я получаю ошибку типа

Доступ к XMLHttpRequest по адресу ‘https://localhost/OSTNextService/OSTPortalService.svc/GetUserName » из источника «https://localhost:4200 ‘ был заблокирован политикой CORS: значение заголовка ‘Access-Control-Allow-Origin’ в ответе не должно быть шаблоном ‘*’, если режим учетных данных запроса «включить». Режим учетных данных запросов, инициируемых XMLHttpRequest, контролируется атрибутом withCredentials .

когда я разместил приложение в IIS и сопоставил с ним папку dist, все работало нормально. но каждый раз, когда я менял файл .ts, который мне нужен для сборки приложения, это почти двойная трата времени. пожалуйста, помогите, посоветовав, чего мне здесь не хватает.

Комментарии:

1. работает ли ваш локальный хост по защищенному протоколу?

Ответ №1:

используйте «/OSTNextService» вместо «/ OSTNextService » в файле прокси. А если вы используете просто "target": "https://localhost/" , вам это не нужно rewrite ,

также используйте в своем приложении не полный URL-адрес, а относительный /OSTNextService/OSTPortalService.svc/GetUserName , тогда он попадет на ваш прокси-сервер и перенаправится на localhost:80/ …

Я не думаю, что есть какая-либо необходимость возиться с заголовками IIS.