我正在使用jQuery 3.2.1。我正在尝试通过Ajax jQuery调用API。
我正在跟踪一个示例和类似这样的代码:
(() => {
function delTest() {
$.ajax({
url: 'http://localhost:3413/api/person?ID=100',
type: 'DELETE',
dataType: 'json',
data: { "": "Sourav Kayal" },
success: function (data, textStatus, xhr) {
console.log(data);
},
error: function (xhr, textStatus, errorThrown) {
console.log('Error in Operation');
}
});
}
})();
和API
public class personController : ApiController
{
[HttpDelete]
public string Delete([FromUri] int ID, [FromBody] String name)
{
return "Delete Operation" + "ID:- " + ID + "Name:- " + name;
}
}
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
但是,它现在不起作用。
返回错误:找不到404
答案 0 :(得分:1)
我正在使用以下代码,并且在我的机器上可以正常工作。我认为您需要在URL中添加方法名称delete,它应该看起来像“ http://localhost:3413/api/person/Delete?ID=100”
<script type="text/javascript">
function delTest() {
$.ajax({
url: 'http://localhost:3413/person/Delete?ID=100',
type: 'DELETE',
dataType: 'json',
data: { name: "Sourav Kayal" },
success: function (data, textStatus, xhr) {
console.log(data);
},
error: function (xhr, textStatus, errorThrown) {
console.log('Error in Operation');
}
});
}
</script>
<input type="button" name="delete" onclick="delTest()" value="makeCall"/>
和API代码:
[System.Web.Http.HttpDelete]
public string Delete([FromUri] int ID, [FromBody] String name)
{
return "Delete Operation" + "ID:- " + ID + "Name:- " + name;
}