使用 ajax 调用 webapi get 方法时出现 405 错误
Posted
技术标签:
【中文标题】使用 ajax 调用 webapi get 方法时出现 405 错误【英文标题】:405 error while calling webapi get method using ajax 【发布时间】: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”但是没有响应或者报错
【参考方案1】:
您是否检查过在您运行此代码的地方激活了 HTTP 激活?
【讨论】:
虽然只是在浏览器中调用 uri 我可以得到结果,但使用 ajax 会出现 405 错误以上是关于使用 ajax 调用 webapi get 方法时出现 405 错误的主要内容,如果未能解决你的问题,请参考以下文章
如何从 jQuery ajax 调用将复杂对象传递给 ASP.NET WebApi GET?