我在服务器端的ValuesController
中有一个get方法,这里使用的是MVC 4 Web Api
方法
[HttpGet]
public List<Product> Get()
{
return productRepository.ListOfProducts().ToList();
}
我通过ajax
调用了这个方法$.ajax({
url: "http://localhost:57260/api/values",
type: "GET",
dataType: 'json',
success: function (data) {
alert("Ramesh is a yummy ;)");
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("Ramesh is a fool");
}
});
这个ajax方法总是去失败函数,不去成功方法
但是当我在浏览器中键入url时,它会返回json数据。见这个屏幕..
但为什么ajax不起作用?这很奇怪......
注意,Ramesh。
我看不到控制台错误的详细信息,因为我正在使用Windows移动应用,所以它在移动模拟器上运行
答案 0 :(得分:1)
根据您提供的详细信息,我可以理解,这主要是因为相同来源的政策限制。谷歌的“ASP.NET Web API CORS”。
答案 1 :(得分:0)
这样可行。
$.ajax({
url: "http://localhost:57260/api/values",
method: "GET",
headers: { "Accept": "application/json; odata=verbose" },
function (data) {
alert("Ramesh is a yummy ;)");
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("Ramesh is a fool");
}
});