【发布时间】:2014-05-01 20:43:45
【问题描述】:
我这里有一个 WebAPI 方法:
http://localhost:50463/api/movies
当从浏览器访问它时,它会完美加载。
在我的项目(与 Web API 所在的项目相同)中,当从 AngularJS 调用方法时,我收到错误 500:
加载资源失败:服务器响应状态为 500(内部服务器错误)
当我点击错误中的链接时,它会完美加载数据。
WebAPI的路由如下:
config.Routes.MapHttpRoute("DefaultApiGet", "Api/{controller}",
new {action = "Get"},
new {httpMethod = new HttpMethodConstraint(HttpMethod.Get)}
);
这是角度调用
app.factory('dataFactory', function ($http) {
var factory = {};
factory.data = function (callback) {
$http.get('/api/movies').success(callback);
};
return factory;
});
我添加这个 javascript 只是为了排除 Angular,我得到了同样的结果:
$.ajax({
url: "/api/movies",
type: 'GET',
//data: "{ 'ID': " + id + "}",
contentType: "application/json; charset=utf-8",
success: function(data) {
alert(data);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(thrownError);
}
});
知道我做错了什么吗?
【问题讨论】:
-
MapHttpRoute中的Api/不应该全部小写吗? -
我从这里得到了路线,我不认为这个案子很重要stackoverflow.com/questions/9499794/…
-
你能发布你的控制器动作方法的代码吗?内部服务器告诉我,当您进行 ajax 调用时,该方法可能会失败。打电话时可能缺少参数?