Ресурс не найден при передаче закодированного URL - PullRequest
0 голосов
/ 30 апреля 2018

Когда я вызываю следующий URL из моего ионного приложения, я получаю сообщение об ошибке:

http://localhost:56776/api/Account/%2B17276669901/RequestResetCode?language=en-US&countryId=9305  404 (Not Found)

Это то, что есть в моем файле машинописи:

  var url=  AppSettings.API_URL + 'api/Account/' + encodeURIComponent(phone) + '/RequestResetCode' + lang + '&countryId=' + AppSettings.PREFERRED_COUNTRY;
    return this.http.post(url,'');

Похоже, что encodeURIComponent не может обработать «+», когда он прошел вместе с номером телефона. Это работает, когда я передаю номер телефона без символа «+». Спасибо за просмотр. Просто к сведению, у меня есть asp.net web api для удовлетворения этого запроса. Есть ли что-то, что мне нужно настроить на моем API вместо?

Backend:

На уровне контроллера: [RoutePrefix("api/Account")]

[AllowAnonymous]
        [HttpPost]
        [HttpOptions]       
        [Route("{UserLoginName}/RequestResetCode")]
        public IHttpActionResult RequestResetCode([FromUri]string userLoginName, [FromUri]string language = null)
        {
            new Application.Service.RequestResetCode(userLoginName, language);
            return Ok();
        }

routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
...