【发布时间】:2016-10-16 02:54:44
【问题描述】:
我开发了一个用于测试的 WebApi 和客户端页面。 这是我的控制器
public class CarDetailsController : ApiController
{
// GET api/cardetails
[HttpGet]
public IEnumerable<CarsStock > GetAllcarDetails()
{
CarsStock ST = new CarsStock();
CarsStock ST1 = new CarsStock();
List<CarsStock> li = new List<CarsStock>();
ST.CarName = "Maruti Waganor";
ST.CarPrice = "4 Lakh";
ST.CarModel = "VXI";
ST.CarColor = "Brown";
li.Add(ST);
ST1.CarName = "Maruti Swift";
ST1.CarPrice = "5 Lakh";
ST1.CarModel = "VXI";
ST1.CarColor = "RED";
li.Add(ST1);
return li;
}
}
这是我的 ajax 调用
<button onclick="AllcarDetails()"></button>
<script type="text/javascript">
function AllcarDetails()
{
$.ajax({
type: "GET",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
contentType: 'application/json',
url: "http://localhost:1822/api/cardetails", //URI
success: function (data) {
debugger;
var datadatavalue = data;
},
error: function (xhr) {
alert(xhr.responseText);
}
});
}
</script>
它一直给出 405 Method Not Allowed 错误。我尝试通过谷歌搜索但找不到确切的情况。有人可以帮我解决这个问题吗?
从浏览器'http://localhost:1822/api/cardetails'调用时得到正确的结果
【问题讨论】:
-
所以它可以在浏览器上运行,但是它在哪里不工作呢?只是一个猜测,尝试删除标题。
-
调用ajax GET方法时报错
-
我已删除但仍无法正常工作
-
我也猜想 ajax 和 api 在同一台服务器上运行,所以把你的 url 改成这样:
url: "/api/cardetails",。还要确保您在控制器上使用[System.Web.Http.HttpGet]属性,而不是[System.Web.Mvc.HttpGet]属性。 -
url改成“localhost:8383/api/cardetails”但是没有响应或者报错
标签: ajax asp.net-web-api http-status-code-405