我有一个正在尝试连接的 Durandal/Hot Towel 测试应用程序。我有以下 ajax 调用,但出现 404 错误。
获取 http/.../api/Pizza/GetPizzasByOrderId?%22a8926610-a713-494c-bb15-46f6487a01c7%22 404(未找到)
我可以手动将网址更改为:
http/.../api/GetPizzasByOrderId?orderId=a8926610-a713-494c-bb15-46f6487a01c7
有用。但我想知道为什么另一个调用不起作用或更多,为什么 ajax 会在 URL 中弄乱参数,而不是像复杂对象那样处理数据。我有一个运行良好的获取和保存。get 的参数为零,而 save 正在传递一个复杂的对象。
C# Web API 控制器:
public class PizzaController : ApiController
{
[HttpGet]
public IEnumerable<Pizza> GetPizzasByOrderId(Guid orderId)
{
return DATA.GetPizzasByOrderId(orderId);
}
}
JAVASCRIPT:
var dataCall = $.ajax(config.getPizzasByOrderIdUrl, {
data: ko.toJSON(orderId),
type: "get",
contentType: "application/json"
});
我应该将我的 JavaScript 代码更改为下面的代码并完成它,还是有更好的方法与 Api 对话?
var getPizzasByOrderId = function (orderId) {
return Q.when($.getJSON(config.getPizzasByOrderIdUrl + "?orderId=" + orderId));
};