Angular 4 HTTP Post запроса показывает данные в URL - PullRequest
1 голос
/ 15 апреля 2019

Я пытаюсь создать элемент управления для входа в машинопись.Когда я пытаюсь отправить данные, они отображаются в URL как метод get.

Вот машинописный код;

AdminLogin(login: any) {
    let loginJson = JSON.stringify({ login });
    let headers = new Headers({ "Content-Type": "application/json" });
    let options = new RequestOptions({ headers: headers });

    return this.http.post(this.linkAdminLogin, loginJson, options)
        .map((response: Response) => response.json())
        .catch(this._errorHandler);
}

А вот метод c #

[HttpGet]
public JsonResult Login(string login)
{
    UserJson user = JsonConvert.DeserializeObject<UserJson>(login);

    string pass = user.Password.ToMD5();

    var rb = entity.Users.Where(a => a.Active == true && a.Username == user.Username && a.Password == pass).FirstOrDefault();

    if (rb != null)
    {
        Session["CurrentUser"] = rb;

        return Json(true, JsonRequestBehavior.AllowGet);
    }
    else
    {
        return Json(false, JsonRequestBehavior.AllowGet);
    }
}

Когда я иду какэто в сетевой панели Chrome URL-адрес входа выглядит как http://localhost/AngularProject/Ajax/Home/Login?login=%7B%22Username%22:%22blahblah%22,%22Password%22:%22blahblah%22%7D

Если я использую атрибут HttpPost, он не работает.Выдает ошибку типа Http 404. Not found error для метода.

Я просто пытаюсь скрыть данные от URL.Я новичок в Angular, так что я жду ваших ответов.

Ответы [ 3 ]

1 голос
/ 15 апреля 2019

Можете ли вы попробовать что-то вроде этого. Угловой пример:

AdminLogin$(request: RequestModel): Observable<responseModel | type> {
  const url = '<url to api>';

  return this.http.post<responseModel | type>(url, {request})
    .pipe(catchError(this.errorHandler));

}

C # пример:

[HttpPost]
public IActionResult Login([FromBody] RequestModel request)
{
  // your code
  return Ok();
}
0 голосов
/ 15 апреля 2019

Настройка конфигурации прокси, например здесь .

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

Попробуйте удалить эту строку

   let loginJson = JSON.stringify({ login });
...