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