AngularJS + ASP.NET $ http.post返回401

时间:2017-08-01 20:19:50

标签: javascript angularjs asp.net-mvc post

我正在尝试向我的数据库添加一个新的Stop。但我在asp.net中遇到401错误。

.js文件:

 function addThreeMonthsToStartDate(today) {
 // var today = new Date();
    var lastDate = new Date(today.getFullYear(), today.getMonth()+3, 
                   today.getDate());
    }



$("#startdate").datepicker({
    isDisabled: function(date) {
        return date.valueOf() < Date.now() ? false : true;
    },
    startDate: "dateToday", // If you need to disable past dates
    autoClose: true,
    viewStart: 0,
    weekStart: 1,
    endDate: lastDate,
    dateFormat: "dd/mm/yyyy"
});

.html文件(输入表单):

(function () {
    "use strict";
    angular.module("app-trips")
        .controller("tripEditorController", tripEditorController);
    function tripEditorController($routeParams, $http) {
        var vm = this;
        vm.tripName = $routeParams.tripName;
        vm.stops = [];
        vm.newStop = {};

        vm.addStop = function () {
            alert(vm.newStop.name);
            $http.post("/api/trips/" + vm.tripName + "/stops", vm.newStop)
                .then(function (response) {
                    vm.stops.push(vm.newStop);
                };
       }
}

C#邮政编码:

<form novalidate name="newStopForm" ng-submit="vm.addStop()">
    <div class="form-group">
        <label for="">Date</label>
        <input class="form-control" id="arrival" name="arrival" ng-model="vm.newStop.arrival" required />
    </div>
    <div class="form-group">
        <label>Location</label>
        <input class="form-control" id="name" name="name" ng-model="vm.newStop.name" required ng-minlength="3" />
    </div>
    <div>
        <input type="submit" value="Add" class="btn btn-success" ng-disabled="newStopForm.$invalid" />
    </div>
</form>

GeoCoordsService.cs:

 [HttpPost("/api/trips/{tripName}/stops")]
        public async Task<IActionResult> Post(string tripName, [FromBody]StopViewModel vm)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var newStop = Mapper.Map<Stop>(vm);
                    var result =await _coordsService.GetCoordsAsync(newStop.Name);
                    if (!result.Succes)
                    {
                        _logger.LogError(result.Message);
                    }
                    else
                    {
                        newStop.Latitude = result.Latitude;
                        newStop.Longitude = result.Longitude;
                    }
                    _repository.AddStop(tripName, newStop, User.Identity.Name);
                    if (await _repository.SaveChangesAsync())
                    {
                        return Created($"/api/trips/{tripName}/stops/{newStop.Name}",
                                         Mapper.Map<StopViewModel>(newStop));
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.LogError("Failed to save new Stop: {0}", ex);
            }
            return BadRequest("Failed to save new stop");
        }

我已经读过,这可能是因为数据格式不正确,有没有人知道什么是正确的格式,我的网页返回错误400,但我的C#更深入我可以看到该函数{{ 1}}返回错误401(Unotharized)。我想我也应该在某处添加用户名,但我不知道在哪里。

0 个答案:

没有答案