Невозможно опубликовать http-запрос в веб-проекте .Net Core 2.1. - PullRequest
0 голосов
/ 23 сентября 2019

В настоящее время я работаю над проектами Angular 6 и .Net Core 2.1.Итак, мой код Angular 6 находится в одном проекте, а методы контроллера .Net Core 2.1 для аутентификации при входе в систему - в другом проекте.По моим наблюдениям, оба моих проекта имеют разные номера портов локального хоста.Когда я делаю Api звонки от почтальона, я могу получить результаты.Но невозможно отправить данные из угловой службы в метод контроллера.

Теперь у меня есть сценарий для отправки учетных данных для входа в метод контроллера в моем ValuesController.Но всякий раз, когда я отправляю учетные данные в метод контроллера.Я получаю HttpErrorResponse

Сценарий 1:

Когда мой код Angular 6 и метод контроллера (SampledataController) присутствуют в одном проекте, я могу опубликовать запрос и получитьответ успешно.

Сценарий 2 Но у меня возникает проблема, когда мой код Angular 6 находится в одном проекте, а методы контроллера .Net Core 2.1 для аутентификации входа в систему находятся в другом проекте.Это из (WebProject) LoginService ----> (Api) ValuesController

enter image description here

LoginService.ts

AuthenticateUser(txtUsername: string, txtPassword: string) {

    this.userRoles.UserName = txtUsername;
    this.userRoles.Password = txtPassword;
    let parameters = new HttpParams().set('txtUsername', txtUsername)
                                     .set('txtPassword', txtPassword);
    let headers = new HttpHeaders();
    headers.append('Content-Type', 'multipart/form-data');
    headers.append('Accept', 'application/json');
    const httpOptions = { headers: headers };
    return this._httpClient.post(this.base_url + "SampleData/AuthenticateUser/" + txtUsername + "/" + txtPassword , httpOptions);
}

ValuesController.cs

[Route("[controller]")]
    public class ValuesController : ControllerBase
    {

        [Route("[action]/{UserName}/{Password}")]
        public ActionResult<IEnumerable<string>> AuthenticateUser(string UserName, string Password)
        {
            return new string[] { UserName, Password };
        }

Ниже представлена ​​структура моего решения

Solution
    --> Angular project
         Components
               --login component
         Services
               --Login service
         Controller
               --SampleDataController

    --> WebApi Project
         --Controller
              -- ValuesController

Не могли бы вы помочь мне решить проблему, так как я совершенно новичок в этом.Заранее спасибо !!

1 Ответ

0 голосов
/ 23 сентября 2019

Имея ограниченную информацию, я бы проверил, включен ли CORS?(Похоже, это проблема, потому что почтальон не выполняет предварительный запрос, но ваш браузер делает. Наряду с этим вы, вероятно, не правильно управляете ответами вашего Сервера, и именно поэтому вы получаете фанки 404. возможно, потому что ваш API пытаетсячтобы перенаправить на страницу входа, которая не существует.

, чтобы включить CORS для всех доменов, добавьте app.UseCors(); в метод Configure при запуске

документацию по включению CORS:

https://docs.microsoft.com/en-us/aspnet/core/security/cors?view=aspnetcore-2.2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...