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
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
borislavml avatar borislavml 368 Точки

И на нас ни гърмя логин-а.Оказа се, че е заради grant_type: password и тъпия начи, по който end-point-a в WEB API /Token приема заявките. Предполагам, че го правите с AJAX и като му пададете креденшълите като json/apllication той не харесва точно този grant_type:passwor. В stackoverflow имаше чудесни отговори на този проблем, но не мога да  открия темата в момента.Там предлагаха два изхода. Единия e в AJAX call-a, примерно както ползваме ние angular-ското $http 


$http({
  method: method,
  url: url,
  data: data
  headers: headers
})

да се заадед на headers, че му пращаме данните url-encoded: headers: 'Content-Type', 'application/x-www-form-urlencoded', а другия да се подаде data като стринг а не като обект: data: "Username=" + username +
"&password=" + password + "&grant_type=password".

При нас сработи по втория начин, дано и при вас това да е пороблема.

Едит: А относно CORS-а, при мен тръгна за 2 минути. Инстал owin пакета и един ред код в 

App_Start/Startup.Auth.cs , а именно app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll); в ConfigureAuth метода, и абсолютно нищо друго.

 

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