javascript - 对 Web api 的 Ajax 调用不起作用

标签 javascript ajax asp.net-mvc asp.net-web-api2

我是 Ajax 新手,我已经在 get 方法中编写了我的 Api,它成功返回了值,我在 Web 控制台和 fiddler 中都看到了它,但是我对 Web api 的 ajax 调用在文档准备就绪时没有获取任何值函数,并且在浏览器控制台中也没有收到任何错误,我不知道为什么,请任何人在这里帮助我,我附上我的 api 和 ajax 调用。

API:

[Route("api/GetCompanyName")]
[HttpGet]
public List<Company> GetCompanyName()
{
    var Compname = getcompName();

    return Compname;
}

public List<Company> getcompName()
{
    var CompName = new List<Company>();

    SqlConnection con = new SqlConnection(ConnString);
    con.Open();
    SqlCommand cmd = new SqlCommand("Select * From Company_table", con);
    SqlDataReader dr = cmd.ExecuteReader();
    while (dr.Read())
    {
        CompName.Add(new Company
        {
            companyname = dr["Company_mtName"].ToString(),
            //value = dr["Company_Name"].ToString()
        });
    }
    con.Close();

    return CompName;
}

Ajax 调用:

<script type="text/javascript">
    $(document).ready(function () {
        $.ajax({
            url:'192.168.1.6:68/api/GetCompanyName',
            type:'GET',
            dataType:'JSON',                                
            crossDomain:true,       

            success: function(data,xhr){
                alert(data);
                }
        });
    });
</script>

最佳答案

您需要在api中允许跨域访问。为此,您需要使用System.Web.Http.Cors库

using System.Web.Http.Cors;

[HttpGet]
[EnableCors("*", "*", "GET")]
public List<Company> GetCompanyName()
{
var Compname = getcompName();
return Compname;
}

在 cors 中,第一个参数是您的主机名。 “*”表示任何主机都可以访问该方法。第二个参数是 header ,第三个参数是类型。 “* ”可用于使该方法同时允许 POST 和 GET。

关于javascript - 对 Web api 的 Ajax 调用不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47466785/

相关文章:

c# - 如何从代码隐藏返回字符串并显示在网页上?

jquery - CoffeeScript - 使用 JQuery 将点击事件绑定(bind)到动态加载的对象

javascript - 使用数据类型 :jsonp into pure JS ajax 更改 jQuery ajax

asp.net - 生成的图像显示与下载

javascript - Meteor 有全局渲染函数吗?

javascript - 是否有不同类型的转义序列?

javascript - 有 promise 的 Angularjs 单元测试服务

php - 使用 Jquery .ajax 取消正在进行的 AJAX 请求?

c# - MVC4 自定义表单例份验证 - 无法将 System.Web.HttpContext.Current.User 转换为 CustomPrincipal

asp.net-mvc - 将 asp.net mvc beta 部署到 iis 6 导致 404