Angular 6: 400 неверный запрос при вызове URL-адреса API для получения токена авторизации - PullRequest
0 голосов
/ 06 апреля 2019

В моем приложении Angular 6 я получаю ошибку Http 400 Bad Request при вызове URL-адреса API для токена входа.

API работает нормально, если я вызываю тот же URL из POSTMAN.

Но выдает ошибку при вызове из приложения Angular.

Service.ts (угловой)

Get_User_Token(Email, Password) {
    var data = "username=" + Email + "&password=" + Password + "&grant_type=password";
    var reqHeader = new HttpHeaders({ 'Content-Type': 'application/x-www-urlencoded', 'No-Auth': 'True' });
    return this.http.post(this.BASE_URL + '/token', data, { headers: reqHeader });
  }

web.config

<httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="*" />
        <add name="Access-Control-Allow-Methods" value="*" />
      </customHeaders>
    </httpProtocol>

startup.cs

   public void Configuration(IAppBuilder app)
        {

            OAuthAuthorizationServerOptions option = new OAuthAuthorizationServerOptions
            {
                TokenEndpointPath = new PathString("/token"),
                Provider = new ApplicationOAuthProvider(),
                AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
                AllowInsecureHttp = true
            };
            app.UseOAuthAuthorizationServer(option);
            app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
        }

Может кто-нибудь помочь мне исправить это.

1 Ответ

0 голосов
/ 06 апреля 2019

сначала посмотрите это сообщение: Access-control-allow-origin с несколькими доменами

, затем, если вам нужно увидеть эту страницу: Включите запросы между источниками в ASP.NETКраткое руководство по веб-API 2

для включения запросов с несколькими источниками в ASP.NET Web API 2 в три этапа:

выполните следующие действия: 1. первая установка

Install-Package Microsoft.AspNet.WebApi.Cors

2. Откройте файл App_Start / WebApiConfig.cs.Добавьте следующий код в метод WebApiConfig.Register:

using System.Web.Http;
namespace WebService
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            // New code
            config.EnableCors();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }
}

3.Затем добавьте атрибут [EnableCors] в класс TestController:

using System.Net.Http;
using System.Web.Http;
using System.Web.Http.Cors;

namespace WebService.Controllers
{
    [EnableCors(origins: "http://mywebclient.azurewebsites.net", headers: "*", methods: "*")]
    public class TestController : ApiController
    {
        // Controller methods not shown...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...