Loading...
Kibork avatar Kibork 87 Точки

[Useful Info] Web Services and Cloud - Web Api - enable CORS

MOD EDIT: Погледнете Best Answer-a, Колеги

Здравейте.

По екипния проект сме понаправили backend (Web Api проект с автоматично генерирана Authentication), в момента го вързваме с прост frontend (две поленца за username и password и бутон за логин). Имаме следния проблем:

При логин (/Token) заявката минава, параметрите се изпращат правилно, връща 200 ОК, но не иска да прочете JSON-a, който се връща от сървъра - дава, че първият символ е грешен.

Заявката работи успешно през Postman. Не работи през Hurl.

Какво сме опитали до момента?

- да настроим CORS

- преровихме си кода за грешки...

Register работи и през Postman и през формичката... Логин - нъцки...

 

Някой да се е изправял пред този проблем и да може да даде съвет?

Отбор черешка (French-Lime) благодари сърдечно предварително за всякакви отговори и насоки :)

 

Тагове:
0
C# Web Services & Cloud 09/04/2015 14:32:50
jabalka avatar jabalka 960 Точки
Best Answer

Здравейте. Не постнахме код, защото мислихме, че на концептуално ниво може да решим проблема. Anyway. Решихме го.

Трябваше да се enable-не CORS (Cross-Origin Resource Share), защото реално клиентът се стартира от един origin, а сървърната логика е на друг. Повече за CORS може да прочетете ТУК - какво е, защо го има и т.н.

Ето една статия по темата - как да позволим това in general. Но не работи за login (по defaul /Token).

Та, какво правим тогава? След като сме прочели горната статия знаем как да питаме Гуугъл и той е така учтив да ни препрати към точната статия в Stack Overflow :) Просто в главния Web.Config на проекта си трябва да добавите:

<httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Methods" value="GET, POST, OPTIONS, PUT, DELETE" />
  </customHeaders>
</httpProtocol>

Оказа се супер елементарно... Нали :)

Все пак препоръчвам да прочетете и статиите, за да разберете какво правят тези два реда и да не си направите бели (позволява се CORS към всички домейни реално, което не е съвсем яко).

Може би за вас това не е нова информация - за мен беше и ми е приятно да я споделя.

 

Хайде спорно джиткане по екипния проект!

4
gngeorgiev avatar gngeorgiev 90 Точки

Постваш код - помагаме, не постваш код - гадаем :)

0
ZvetanIG avatar ZvetanIG 907 Точки

Преминах през същите перипети и след един загубен ден стигнах до същите статии и заключения.  Но уви не става.  Работи само регистрацията, но не и логина.  Незнам какви мъгии сте му направили, но просто нестава.  Явно ще си правим собствен логин.... 

Между другото Честити Рождество Христово.

1
Matrix avatar Matrix 1092 Точки

"Между другото Честити Рождество Христово."

Цецо, май си прекалил с алкохола по праниците :D

Воистина воскресе! :)

1
12/04/2015 01:18:37
RoYaL avatar RoYaL Trainer 6849 Точки

Весела Коледа и на теб

2
ZvetanIG avatar ZvetanIG 907 Точки

Ха сега на трезво... laughing

Христос възкресе

P.S.  То с този сняг наскоро, как да не се обърка човек.

1
12/04/2015 10:21:40
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.