【发布时间】:2013-08-29 12:27:22
【问题描述】:
我有一个正在尝试连接的 Durandal/热毛巾测试应用。我有以下 ajax 调用,但出现 404 错误。
GET 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));
};
【问题讨论】:
标签: asp.net-mvc jquery knockout.js asp.net-web-api durandal