Publish your project for free and start receiving offers from freelance contractors in serveral minutes after publication!

Проблема с CORS на ASP.NET Web API



  1. 184  
    1 day300 ₴

    Добрый день! Готов настроить CORS в вашем проекте за кратчайшие сроки.

  • Дарья Якимова
    14 April at 01:20 |

    Можно узнать как вы добавляете cors в программном коде и настраиваете его? Может где-то по ссылке можно посмотреть?

  • Леонид Мартынюк
    14 April at 17:33 |

    можно

    https://drive.google.com/open?id=1Qm0yzqRebb4DSVP-OVNrk2WhdGRFzYHA


    интересно  что  корс  вываливается   когда  добавляешь  в  запрос  contentType: "application/json" 



  • Дарья Якимова
    14 April at 22:49 |

    Доступ запросила на документ
    Вы уверены что ошибка cors? Т/е например в отладчике в браузере при запросе на адрес видите ошибку со словом Origin, например Acccess-Control-Allow-Origin?
    В webapi добавление EnableCors()/AddCors()/UseCors() и настроиваете его на адреса с которых будут запросы, заголовки(для application/json ставите *) и на любые методы - * либо глобально, либо перед контроллером

  • Леонид Мартынюк
    14 April at 23:11 |

    разрабы   фронтенда   говорят  да.  надо  уточнить  что оно  конкретно им пишет

  • Дарья Якимова
    15 April at 02:59 |

    И самое важное

    CORS - для безопастности, мы регулируем какие домены(origins) могут обращаться к вашим WebAPI с какими заголовками(application/json) и какие запросы(PUT, DELETE,...) им разрешены

    Т/е мы его используем для ограничения - для безопасности

    Например, у меня есть Web API .Net он запущен на моем сервере и внутренний адрес: localhost:3000, а внешний https://examle.com

    Внутри программы .net я пишу 

    services.AddCors();

    AllowAnyHeader() - разрешаю любые заголовки в том числе application/json; 

    AllowAnyMethod(); - разрешаю любые методы PUT, POST, … 

    У меня указано WithOrigins(“http://localhost:3000”)!! т/е к моему api могут обращаться только сервисы запущенные с текущего локального сервера и порта (with origin: localhost:3000/* or example.com/*(nginx настройки)) иначе будет ошибка

    Попробуйте добавить адреса с которых обращается фронтендер, например в WebAPI .net перед контроллерами

    [EnableCors(origins: "http://www.адрес-фронтендера.com", headers: "*", methods: "*")]

    public class ItemsController : ApiController {}

    Или глобально