我是APS.NET MVC WEB API编程的新手.
所以这是我的问题,我已经使用以下代码创建了一个ASP.NET WEB API项目
public class ValuesController : ApiController
{
// GET api/values
public IEnumerable<Employee> Get()
{
return new List<Employee>()
{
new Employee(){ EmpId=1,EmpName="xyz" },
new Employee(){EmpId=2,EmpName="abc"}
};
}
// GET api/values/5
public Employee Get(int id)
{
return new Employee() { EmpId = id, EmpName = "xyz" };
}
}
简单吧.. !!
我做的下一件事是创建一个html文件并编写一个ajax方法来从web api获取数据
$(function () {
var obj = {};
$.ajax({
type: "GET",
url: "http://localhost:2797/api/values/1",
data: JSON.stringify(obj),
dataType: "JSON",
contentType: "application/json; charset=UTF-8",
success: function (data) {
alert(data.EmpName);
},
failure: function (data) {
alert("Error Occured");
}
});
});
现在这里是我的jquery脚本能够联系到webapi的问题,因为当html页面获得刷新时断点断开并且它也返回值但是由于某些未知原因,Success函数中的警报消息不会被击中.我不知道为什么
请帮忙
提前致谢..!!
解决方法:
我终于找到了解决方案
首先转到工具 – > Nuget包管理器 – >包管理器控制台
键入此命令安装包Microsoft.AspNet.WebApi.Cors -IncludePrerelease
然后在WebApiConfig.cs中添加此行config.EnableCors();
现在装饰你的apicontroller这个属性[EnableCors(起源:“*”,标题:“*”,方法:“*”)]
但是当使用post方法消费api时,我们可能会遇到cors属性的一些问题
所以要避免它.我们可以全局声明cors属性
var cors= new EnableCorsAttribute(origins:"*",headers:"*",methods:"*");
config.EnableCors(cors);
现在是jquery代码
$(document).read(function(){
jquery.support.cors=true;
$.ajax({
type:"GET",
url:"http://localhost:63300/api/values/1",
crossDomain:true,
contentType:"application/json; charset=utf-8",
dataType:"json",
success:function(data){
alert(data);
},
error:function(data){
alert('Error Occured..!');
}
});
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。