mardi 19 janvier 2016

Bad request when calling api

I'm getting 400 Bad request when calling API. It's supposed to send user name and his cart details, but it's sending just cart or just user name.

Here is my js:

 self.createOrder = function () {
        var jqxhr = $.ajax({
            type: 'POST',
            url: orderUri,
            contentType: 'application/json',
            data: ko.toJSON({ Details: self.cart }),
            dataType: "json",
            success: function (newOrder) {
                self.errorMessage(null);
                self.resetCart();
                self.orders.push(newOrder);
                self.createdMessage('Order placed! Thank you :)');
            },
            error: function (jqXHR, textStatus, errorThrown) {
                self.errorMessage(errorThrown);
                self.createdMessage(null);
            } 
        });
    }

Here is API at address "POST: api/Orders"

 [HttpPost]
        public HttpResponseMessage PostOrder(OrderDTO dto)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var order = new Order()
                    {
                        Customer = User.Identity.Name,
                        OrderDetails = (from item in dto.Details
                                        select new OrderDetail()
                                        {
                                            MenuId = item.MenuID,
                                            Quantity = item.Quantity
                                        }).ToList()
                    };

                    db.Orders.Add(order);
                    db.SaveChanges();

                    HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, order);
                    response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = order.Id }));
                    return response;
                }
                else
                {
                    return Request.CreateResponse(HttpStatusCode.BadRequest);
                }
            }
            catch (Exception ex)
            {

            }
            return Request.CreateResponse(HttpStatusCode.BadRequest);
        }



Aucun commentaire:

Enregistrer un commentaire