我是 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/