Asp.net mvc 4 Web API调用不起作用
这是我第一次在MVC4中使用WebAPI组件。我刚刚创建了一个WebAPI项目来管理个人详细信息。我在Person控制器中编写了一个get函数,并从浏览器中调用它。结果是:Asp.net mvc 4 Web API调用不起作用,asp.net-mvc-4,asp.net-web-api,Asp.net Mvc 4,Asp.net Web Api,这是我第一次在MVC4中使用WebAPI组件。我刚刚创建了一个WebAPI项目来管理个人详细信息。我在Person控制器中编写了一个get函数,并从浏览器中调用它。结果是: <ArrayOfPerson xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/WebAPITest.Models"> <Person>
<ArrayOfPerson xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/WebAPITest.Models">
<Person>
<Address>Addr</Address>
<DOB>2013-05-04T00:00:00</DOB>
<ID>1</ID>
<Name>Name</Name>
</Person>
</ArrayOfPerson>
但是我得到了显示错误的警告框。有人能帮我吗?因为您添加了一个新的MVC项目,它将在3802以外的端口上运行。因此,页面URI类似于
http://localhost:/home/index
。如果此页面中的JavaScript调用API端点的URI,即http://localhost:3802/api/Person
,请求将变为跨源请求,浏览器不允许该请求。有关更多信息,请查看。Brock Allen在这个主题上发表了一篇很棒的MSDN文章-。尝试更改url:“http://localhost:3802/api/Person“
到
url:“/api/Person”确保开发服务器在3802端口工作。在chrome或firebug中打开检查器,查看请求和响应。仅仅因为它在Ajax请求中给了您错误,并不意味着您不应该得到错误。可能存在服务器500内部错误或其他问题,但这可能会为您提供更多信息。
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<script src="~/Scripts/jquery-1.7.1.js"></script>
<script>
$(document).ready(function () {
$.ajax({
url: "http://localhost:3802/api/Person",
type: "Get",
success: function (data) {
for (var i = 0; i < data.length; i++) {
$("<tr></tr><td></td>" + data[i].Name + "</td><td></td>" + data[i].Address + "</td><td></td>" + data[i].DOB + "</td></tr>").appendTo("#tbPerson");
}
},
error: function (msg) { alert("Error"); }
});
});
</script>
<h2>Index</h2>
<table id="tbPerson">
<tr>
<th>Name</th>
<th>Address</th>
<th>DOB</th>
</tr>
</table>