我在MVC4中调用用户定义的web api函数时遇到问题请建议我该怎么做。我是第一次使用web api。
我的API函数:
public List<Voice> GetVoicesByStatus(string Status)
{
List<Voice> Voc = db.Voices.Where(x => x.Status == Status).ToList();
if (Status == null)
{
throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound));
}
return Voc;
}
Ajax方法:
function GetVoicesByStatus(status) {
$.ajax({
type: 'GET',
url: 'http://xx.xx.xx.xx.xx:xx/api/Applications/VoicesByStatus/' + status,
data: JSON.stringify({}),
contentType: 'application/json',
dataType: 'json',
headers: { 'AuthToken': '2FEA7374-EBA2-4367-9492-6DB3334AD2AF' },
success: function (data) {
for (var i = 0; i < data.length; i++) {
var str = "<tr><td>" + data[i].ID + "</td><td>" + data[i].APIKey + "</td><td>" + data[i].CreatedBy + "</td><td><a href='#' onclick='fnDelete('" + data[i].ID + "')'>Delete</a></td></tr>";
$("#app").append(str);
}
}
});
}
错误:
答案 0 :(得分:1)
尝试使用以下代码
$.ajax({
type: 'GET',
url: 'http://xx.xx.xx.xx.xx:xx/api/Applications/GetVoicesByStatus?status=' + status,
contentType: 'application/json',T
headers: { 'AuthToken': '2FEA7374-EBA2-4367-9492-6DB3334AD2AF' },
success: function (data) {
for (var i = 0; i < data.length; i++) {
var str = "<tr><td>" + data[i].ID + "</td><td>" + data[i].APIKey + "</td><td>" + data[i].CreatedBy + "</td><td><a href='#' onclick='fnDelete('" + data[i].ID + "')'>Delete</a></td></tr>";
$("#app").append(str);
}
}
答案 1 :(得分:0)
我认为这是与CORS相关的问题。在MVC4中没有默认的CORS处理程序。并使用JSONP作为数据类型。有关启用CORS的信息,请参阅以下链接。
它可能对你有帮助。