Asp.net mvc 4 如何使用ajax方法调用web api中的用户定义函数

Asp.net mvc 4 如何使用ajax方法调用web api中的用户定义函数,asp.net-mvc-4,asp.net-web-api2,Asp.net Mvc 4,Asp.net Web Api2,我面临在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)

我面临在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;
    }
公共列表GetVoicesByStatus(字符串状态)
{
列出Voc=db.Voices.Where(x=>x.Status==Status.ToList();
如果(状态==null)
{
抛出新的HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound));
}
返回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(&#39;" + data[i].ID + "&#39;)'>Delete</a></td></tr>";
                    $("#app").append(str);
                }

            }
        });
    }
函数GetVoicesByStatus(状态){
$.ajax({
键入:“GET”,
网址:'http://xx.xx.xx.xx.xx:xx/api/Applications/VoicesByStatus/"地位,,
数据:JSON.stringify({}),
contentType:'应用程序/json',
数据类型:“json”,
标题:{'AuthToken':'2FEA7374-EBA2-4367-9492-6DB3334AD2AF'},
成功:功能(数据){
对于(变量i=0;i
错误:


尝试以下代码

$.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(&#39;" + data[i].ID + "&#39;)'>Delete</a></td></tr>";
                    $("#app").append(str);
                }

            }
$.ajax({
键入:“GET”,
网址:'http://xx.xx.xx.xx.xx:xx/api/Applications/GetVoicesByStatus?status="地位,,
contentType:'application/json',T
标题:{'AuthToken':'2FEA7374-EBA2-4367-9492-6DB3334AD2AF'},
成功:功能(数据){
对于(变量i=0;i
我认为这是与CORS相关的问题。在MVC4中没有默认的CORS处理程序。请使用JSONP作为数据类型。有关启用CORS的信息,请参阅下面的链接


它可能会对您有所帮助。

这似乎是CORS问题。您尝试调用与您自己的应用程序不同的地址?它与其他HTTP动词(如GET、PUT、POST和DELETE)一起工作,但当我调用自己的函数时,会显示错误,顺便问一下,我如何在ajax方法中调用它